C# 其中的实体框架NullReferenceException
我有下面一行代码调用我的实体框架,并返回一个空引用异常C# 其中的实体框架NullReferenceException,c#,entity-framework,C#,Entity Framework,我有下面一行代码调用我的实体框架,并返回一个空引用异常 List<FieldGroup> fieldGroups = dataContext.FieldGroups.Where(fieldGroup => fieldGroup.Field_Catalog_Id == fieldVersion.FieldCatalogId && fieldGroup.Field_Catalog_Version == fieldVersion.FieldCatalogVersion
List<FieldGroup> fieldGroups = dataContext.FieldGroups.Where(fieldGroup => fieldGroup.Field_Catalog_Id == fieldVersion.FieldCatalogId && fieldGroup.Field_Catalog_Version == fieldVersion.FieldCatalogVersion).ToList();
List fieldGroups=dataContext.fieldGroups.Where(fieldGroup=>fieldGroup.Field\u Catalog\u Id==fieldVersion.FieldCatalogId&&fieldGroup.Field\u Catalog\u Version==fieldVersion.FieldCatalogVersion).ToList();
fieldVersion
已在方法的前面生成,我已确认它,其字段FieldCatalogId
和FieldCatalogVersion
不为空且具有正确的值
我的上下文,dataContext
,虽然名称不正确,但正在连接到我的数据库,并且它在FieldGroups表中确实有行。我还确认,具有Field\u Catalog\u Id
和Field\u Catalog\u Version
的行与where exist中请求的值匹配,因此它应该能够找到要返回的行
我无法确定该行为何抛出NullReferenceException。欢迎提出任何意见。如果我能提供更多有用的信息,请告诉我
Edit:当抛出异常时,我确实查看了局部变量,并且所引用的内容没有显示为null
我添加了Debug.Assert以检查
dataContext
、dataContext.FieldGroups
、fieldVersion
、fieldVersion.FieldCatalogId
和fieldVersion.FieldCatalogVersion
在问题行之前是否不为空。代码通过了所有5个断言,仍然抛出了一个NullReferenceException。我在这些字段中找不到任何可能导致异常的空字段。如果没有where,它会返回什么?属性是否正确映射到它们的表列?表是否正确映射到表名?您的dataContext
null吗?fieldVersion
很可能为null。查询不会引发随机NullReferenceException。添加Debug.Assert(dataContext!=null);Assert(dataContext.FieldGroups!=null);Assert(fieldVersion!=null);Assert(fieldVersion!=null)
在查询之前,查看哪一个爆炸。当抛出异常时,您应该能够告诉空值。把鼠标悬停在所有的东西上,试着看看哪里不对劲,看看当地人。。。