項目を EF4.1 コレクションに追加し、それをデータベースに保存してから、そのコレクションを再度選択すると奇妙な結果が生じる特定の理由はありますか?
初期ロードを行うと、コレクション内のすべてのアイテムが typeSystem.Data.Entity.DynamicProxies.MyClassName_LongString
であるため、コレクションに対する次の選択が機能します。
var y = MyCollection.Where(x => x.ValidTo == null).First();
はい、その基準を満たすアイテムが常にコレクション内にあります。いつも。
ただし、コレクションを選択して新しいアイテムを追加し、変更を保存してから、同じコンテキストでコレクションを再度選択すると、コレクションの最後のアイテム (新しいアイテム) は動的プロキシではなく、私のPOCOタイプ(Moo.Model.MyClassName
)。
そのバージョンのコレクションで上記と同じ選択を実行すると、null 参照例外がスローされます - 最後のアイテム (非動的プロキシ アイテム) が実際に基準に一致しているにもかかわらず、コレクションを手動で監視して確認しました...
変更後に別のコンテキストからコレクションをロードすると、動作自体が表示されません。それらはすべて動的プロキシであり、選択が機能します。
この動作の原因について何か考えがある人はいますか?