【问题标题】:Why do I get Argument exception when I try to use "Include("PropertyName")" in query EF?当我尝试在查询 EF 中使用“Include("PropertyName")”时,为什么会出现参数异常?
【发布时间】:2013-11-13 14:44:16
【问题描述】:

我有以下代码

var query = BAL.ApplicationInfo.db.Items.Include("Units").ToList();

但它给了我这个错误

值不能为空。参数名称:来源

我的 Item 实体有一个名为 "Units" 的属性,实际上 ItemsUnits 实体之间存在关系。但是我想用父记录加载子记录,但是每当我尝试使用上面的代码查询时,我都会收到上面的错误。

有人可以帮我完成这项工作吗?

我的上下文是 DBcontext 而不是 ObjectContext

【问题讨论】:

  • 在我看来BAL.ApplicationInfo.db.Items 正在返回null
  • 我怀疑 .ToList() 应该被调用到 Items 来加载,但是如果我在 db.Items 之后写 .ToList() ,那么我找不到“包含”,那么怎么样我应该这样做吗?
  • 我想我的意思是,当整个语句被执行时,Items 的结果是null
  • 不不,如果执行语句,项目不为空,如果我通常执行以下代码 var items = db.Items.ToList() 那么我可以获得所有项目列表,但如果我执行此代码 var = db.Items ;然后我没有得到任何回报
  • var query = BAL.ApplicationInfo.db.Items.ToList(); 会返回一些东西吗?

标签: c# linq entity-framework


【解决方案1】:

我解决了这个问题。实际上问题是我在班级顶部没有System.Data.Entity 命名空间的using 指令。

即使我认为我可以在查询中使用"Include("PropertyName)" 名称,我也无法使用"Include(x=> x.Childs)"。但是在我的课堂上添加"using System.Data.Entity" 之后,我可以在查询中以这两种方式使用"Include",我的错误就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    相关资源
    最近更新 更多