是否有什麼特別的原因爲什麼添加一個項目到EF4.1集合,將其保存到數據庫,然後再次選擇該集合會產生奇怪的結果?EF4.1,POCOS,動態代理和集合
當我做初始加載,集合中的所有項目都是一個類型System.Data.Entity.DynamicProxies.MyClassName_LongString
的,所以對收集以下選擇工作:
var y = MyCollection.Where(x => x.ValidTo == null).First();
是的,總有集合中的一個項目,其符合該標準。總是。
但是,如果我選擇集合,向它添加一個新項目,保存更改,然後在同一個上下文中再次選擇集合,集合中的最後一個項目(新集合)不是動態代理,而是我的POCO類型(Moo.Model.MyClassName
)。
從開始執行相同的選擇集合的版本會拋出一個空引用異常 - 即使最後一個項目(非動態代理的一個)的確符合我通過觀察確認的條件手動收集...
在更改之後從另一個上下文加載集合,並且行爲不會自行顯示 - 它們都是動態代理,並且選擇工作正常。
有沒有人有什麼想法造成這種行爲是什麼?
出於某種原因,使用.Create方法代替新工作,但像你一樣,我不知道它爲什麼。乾杯。 – Moo