C# 尝试访问实体框架中的表时出现空引用异常

C# 尝试访问实体框架中的表时出现空引用异常,c#,entity-framework,C#,Entity Framework,我已经在实体框架中使用现有数据库生成了数据模型,并填写了表 我试图从一个表中访问数据并在WPF中填充datagrid,但一直得到一个空引用异常 在此处生成异常: pubilc List<item> GetAllItems() { using (var context = new DbEntities()) { if (context.items != null) return c

我已经在实体框架中使用现有数据库生成了数据模型,并填写了表

我试图从一个表中访问数据并在WPF中填充datagrid,但一直得到一个空引用异常

在此处生成异常:

  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.Guto
ToList()
行生成异常,因为
items
为null,因此引发
NullReferenceException
。如何对空引用调用
Count()