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