EntityFramework为什么返回空List而不是空?我是ASP.NETMVC世界的新手。也许,这就是为什么我无法向自己解释什么对我来说是一个烦人的问题。我有一个具有一对多关系的部分。classMyClass{publicListotherClasses{get;set;}}当我坚持这个类的一个实例时,我用一个空列表填充它的关系MyClassmyClass=newMyClass(){otherClasses=newList()}context.myClass.Add(我的课);问题是当我尝试检索该实例时,出于任何原因我尝试访问列表,系统给了我一个空引用异常......我的问题是:为什么EF不返回一个空列表而不是empty?特别是在这种情况下,我要用一个空列表来保存它?有什么方法可以避免验证实例是否为空?您应该让您的实体在构造函数中创建这些列表。EF不创建依赖集合并期望实体这样做。因此,在您的情况下,您将拥有这样的实体:}}使otherClasses集合成为虚拟的。这将使EF能够延迟加载集合。classMyClass{publicvirtualListotherClasses{get;set;}}否则使用Include方法使用预加载。context.myClass.Include(m=>m.otherClasses).SingleOrDefault(m=>m.Id==foo);因此,如果我理解正确的话,您可以将一个空列表添加到列表上下文中,然后尝试检索它。我认为您必须考虑上下文如何跟踪和查询其上下文中的实体。这通常使用实体的密钥来完成。在您的示例中,您没有为实体提供密钥,因此,上下文无法处理该实体。因此,在查询时,上下文找不到该对象并返回null。如果你想初始化一个新的实体,我建议至少给它一个键(通常是Id属性),然后在你以后查找时通过那个键来选择。希望这可以帮助。以上是C#学习教程:EntityFramework为什么返回一个空List而不是empty?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
