C# 尝试访问实体框架中的表时出现空引用异常
我已经在实体框架中使用现有数据库生成了数据模型,并填写了表 我试图从一个表中访问数据并在WPF中填充datagrid,但一直得到一个空引用异常 在此处生成异常:C# 尝试访问实体框架中的表时出现空引用异常,c#,entity-framework,C#,Entity Framework,我已经在实体框架中使用现有数据库生成了数据模型,并填写了表 我试图从一个表中访问数据并在WPF中填充datagrid,但一直得到一个空引用异常 在此处生成异常: pubilc List<item> GetAllItems() { using (var context = new DbEntities()) { if (context.items != null) return c
pubilc List<item> GetAllItems()
{
using (var context = new DbEntities())
{
if (context.items != null)
return context.items.ToList() //exception generated here
else
return new List<item>();
}
}
公共列表GetAllItems()
{
使用(var context=new DbEntities())
{
if(context.items!=null)
return context.items.ToList()//此处生成异常
其他的
返回新列表();
}
}
如果性能不是问题,可以调用Count()方法并检查是否有要返回的项目
public List<item> GetAllItems()
{
using (var context = new DbEntities())
{
if (context.items.Count() > 0)
return context.items.ToList() //exception generated here
else
return new List<item>();
}
}
公共列表GetAllItems()
{
使用(var context=new DbEntities())
{
if(context.items.Count()>0)
return context.items.ToList()//此处生成异常
其他的
返回新列表();
}
}
代码中的哪一行出现异常?您是否检查了context.items
是否不为null?我检查了(context.items!=null)。它返回true代码运行,我得到“对象引用未设置为对象实例”假设您使用的是VS,您是否可以在context.items上设置一个watch来确认它已填充?几乎所有NullReferenceException
的情况都是相同的。请参阅“”以获取一些提示。堆栈跟踪是什么?items
只是一个数据库集吗?数据库提供程序是什么?不需要。空集合将返回空列表。另外,不要使用Count()>0,使用Any()。我尝试了代码。现在,使用Count()和Any()在if条件下生成异常,因此列表通过了null测试,但无法执行任何方法,表示列表为null?@Gustavo没错。现在,在“if(context.items.Count()>0)”@Gustavoa.k.a.GutoToList()
行生成异常,因为items
为null,因此引发NullReferenceException
。如何对空引用调用Count()
?