私は Entity Framework に関する Julie Lerman の本に取り組んできましたが、やや問題が発生しました...
66 ページの「Entity Framework DbContext のプログラミング」で、Julie は動的プロキシが作成されていることを確認する単体テストを作成することを提案しています。これは、Entity Framework で変更追跡プロキシを作成するための要件は非常に単純ですが、見逃しやすいためです。
そうは言っても、ジュリーの例の一般的な構造に従って、コードの次のテストを作成しました。
[Test]
public void IsDynamicProxy()
{
using (var scienceFairToGoContext = new ScienceFairToGoContext())
{
var scienceFair = scienceFairToGoContext.ScienceFairs.Create();
Assert.IsTrue(scienceFair is IEntityWithChangeTracker);
}
}
scienceFair オブジェクトにカーソルを合わせると、変更追跡プロキシであることは明らかです
System.Data.Entity.DynamicProxies.ScienceFair_D3C57A2F699E75F716E63553D950EF7EC75F0C603F69093FCD78122CC0D6452C
...しかし、「scienceFair is IEntityWithChangeTracker」は常にfalseと評価されるため、単体テストを実行するたびに失敗します。
他の誰かもこの問題に遭遇し、O'Reilly フォーラムに投稿したようですが、投稿された解決策はないようです。また、私の Google 検索からも何らかの回答が返されません。
現在、Visual Studio 2010、EF4、NUnit を使用しており、ReSharper を通じてテストを実行しています。また、単純なコンソール アプリケーションでコードを実行してデバッグすると、同じ結果が得られることにも言及する価値があります。