是否有什么特别的原因为什么添加一个项目到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