【问题标题】:DbContext is empty using EF6使用 EF6 的 DbContext 为空
【发布时间】:2015-03-08 14:16:30
【问题描述】:

我使用 Visual Studio 2013 从现有数据库生成模型。模型已生成,我能够使用此模型向数据库添加一些条目。但是,每当我尝试从数据库中读取时,所有条目都会返回为 null。

我正在使用此代码:

using (MaintenanceDB db = new MaintenanceDB())
{
    try
    {
        var data = from e in db.employees select e;
        dataGrid.ItemsSource = data;                        
    }
    catch (Exception)
    {
    }
}

变量data 为空,数据网格中没有出现任何内容。我尝试使用调试器在 Count property is 0

中进行检查

我尝试使用:

db.employees.Find("H1992");

在这种情况下,我可以找到想要的条目。但如果我使用db.employees.Local,它只会出现在数据网格中

【问题讨论】:

  • data 只是查询。例如,如果您想访问项目,则必须使用 ToList() 实现查询。无论如何,我也不明白你为什么要使用 linq 语句?此外 - 什么是`db.employees.Local?
  • 是的,对不起,我错误地编辑了这个,它应该是 dataGrid.ItemsSource = data;但你是什么意思它只是查询?
  • 我根据您的评论更新了您的问题。我不太清楚你为什么使用 LINQ - 没有必要。你可以直接分配dataGrid.ItemsSource = db.employees; 你试过这个吗?有关 LINQ 的详细说明,请参阅MSDN
  • 实际上是的,我试过了,数据网格更空了!更空的我的意思是甚至没有库尔曼名称,无论如何我将 ToArray() 添加到 linq 查询中,数据现在在网格中,谢谢!如果您愿意,请将其添加为答案:)

标签: c# wpf entity-framework datagrid


【解决方案1】:

data 只是查询。如果您想访问项目,则必须使用 ToList()ToArray()实现查询

无论如何,我也不明白您为什么要使用 linq 语句 - 没有必要!

您可以直接分配dataGrid.ItemsSource = db.employees; 请参阅MSDN了解LINQ 的详细说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多