2

パフォーマンスを向上させるためにコンパイル済みのビューを使用しようとしましたが、ビューを正常に生成し、コンパイル時と実行時の.edmxですべてが同じです。以前は、デフォルトの接続ファクトリのデータ プロバイダーのミスマッチがありました。デフォルトの接続ファクトリを他のデータ プロバイダーに変更しても、.edmx は常にデフォルトの接続ファクトリに SqlClient プロバイダーを使用しますが、クラスのコンストラクターをコメントアウトすると、この状況は克服されました。 .edmx ファイルのこの接続プロバイダーは、app.config の既定の接続ファクトリで指定したものと同じだった後、DbContext を継承します。したがって、コンパイル時に生成される .Edmx と実行時の .edmx ではすべてが同じです。

しかし、コンパイル時にビューを生成し、ビューを使用してパフォーマンスを最適化すると、dbcontext.SaveChanges() を呼び出すと、次の例外がスローされます。

「EntityContainer 'DatabaseContext' のマッピングおよびメタデータ情報は、事前生成されたビューの作成に使用された情報と一致しなくなりました。」

上記の例外は、いくつかの不一致があることを示唆していますが、edmx をチェックしたところ、すべて同じです。だから問題は何ですか。または私はこれを経験しました

パフォーマンスに影響しないプリコンパイル済みビュー

さまざまなアセンブリの問題を示唆しているため。したがって、私の場合、POCOクラスがほとんどないproject1と、project1を参照し、project1とDbContextクラスのPOCOクラスを使用する異なるproject2がproject2で定義されており、project2のビューを生成しています。問題 助けてくれてありがとう

4

0 に答える 0