Why does Entity Framework return null List<> instead of empty ones?
我是ASP.NET MVC领域的新手。也许,这就是为什么我不能向自己解释什么是,对我来说,一个恼人的问题的原因。
我有一个班,有一对多的关系。
1 2 3 | class MyClass{ public List<OtherClass> otherClasses {get;set;} } |
当我坚持这个类的一个实例时,我用一个空列表来填充它的关系<>
1 2 |
问题是,当我尝试检索该实例时,无论出于什么原因,我尝试访问该列表,系统都会给我一个空引用异常…
我的问题是:为什么ef不返回空列表而不是空列表?尤其是在这种情况下,我用一个空列表来保存它?
有什么方法可以避免验证实例是否为空?
你应该把你的那些实体的创建,列表中的constructor。。。。。。。EF不t create馆藏和依赖性,expects实体做SO。。。。。。。 </P >
所以,你的情况,你会让你的人格,这样: </P >
1 2 3 4 5 6 7 | class MyClass{ public List<OtherClass> _otherClasses {get;set;} public MyClass() { _otherClasses = new List<OtherClass>(); } } |
麦克的
1 2 3 | class MyClass{ public virtual List<OtherClass> otherClasses {get;set;} } |
否则,用勤奋和
1 | context.myClass.Include(m => m.otherClasses).SingleOrDefault(m => m.Id == foo); |
所以,如果我理解你是correctly,增安
我猜你要想的关于如何在上下文将跟踪和查询的东西,这是在其上下文。这是通常用做
因此,当你的查询,在语境中的不安与t find对象时返回null。 </P >
如果你想初始化一个新的实体,我会recommend给它至少一
希望这helps。。。。。。。 </P >