EntityFramework4データモードがあります。EFが非常に遅いため、ストアドプロシージャを使用してデータベースにデータをロードしています。エンティティモデルを使用して、ストアドプロシージャを呼び出します。すべてが1つのトランザクションに含まれている必要があります。
プロセスを高速化するために、いくつかの一括コピー操作を実行する必要があります。これには、SQLAnywhereとそのADO.NETプロバイダーソフトウェアを使用しています。
電話するとcontext.Connection.BeginTransactin()
、EntityTransaction
戻ってきます。実際、私の変数は、DbTransaction
すべてのトランザクションの基本クラスであるです。ただし、返される実際のオブジェクトはですEntityTransaction
。
EntityTransaction
プロバイダー固有のトランザクションクラス(SAConnection
この場合)にキャストできません。そうした場合、キャスト例外が発生します。しかし、どういうわけか、エンティティコンテキストがストアドプロシージャを呼び出すと、作成したプロバイダー固有のコマンドオブジェクトが、そのEntityTransaction
オブジェクトによって表されるトランザクションに組み込まれます。
プロバイダーはこれをどのように行いますか?これは、一括コピー操作用のプロバイダー固有のトランザクションオブジェクトを取得するために使用できるメカニズムですか?
トニー