【发布时间】:2020-07-16 20:39:07
【问题描述】:
我正在 VS 2015 解决方案中使用 MVC 5 项目和使用 EF 6.1 的代码库项目。我已经从 VS 2013 的先前版本重做整个项目,希望它能解决这个问题,但没有运气。我只是想急切地让一个有孙子的孩子。我试过这个:
Test t = db.Tests
.Include("TestsRemoteOBD")
.Include("TestsRemoteOBD.TestsRemoteOBDDtcs")
.FirstOrDefault();
还有这个:
Test t = db.Tests
.Include(i=>i.TestsRemoteOBD)
.Include(i=>i.TestsRemoteOBD.Select(s=>s.TestsRemoteOBDDtcs))
.FirstOrDefault();
包括使用字符串适用于孩子,但不适用于孙辈。在第二个查询中,我收到了这个错误:
“TestsRemoteOBD”不包含“Select”的定义,并且找不到接受“TestsRemoteOBD”类型的第一个参数的扩展方法“选择”(您是否缺少 using 指令或程序集参考?)
我已经看到通过添加“using System.Data.Entity;”解决了同样的问题,但我很久以前就这样做了。没有帮助。我还能错过什么?
谢谢!
【问题讨论】:
-
第一个 sn-p 给你什么错误?
-
TestsRemoteOBD是收藏吗? -
从错误消息看来,
TestRemoteOBD是单个实体引用,因此只需删除Select。 -
我会避免第一种依赖魔术字符串的方法。试试投影,看看你得到了什么: var test = db.Tests.Select(t => new { parent = t, child = t.TestsRemoteOBD, grandchild = t.TestsRemoteOBD.TestsRemoteOBDDtcs }).FirstOrDefault();
-
第一个 sn-p 没有给出错误,并且在处理 datacontext 后可以访问 TestsRemoteOBD 记录,但尝试访问孙表 TestsRemoteOBDDtcs,对我说“EntityFramework 中发生了‘System.ObjectDisposedException’类型的异常.dll 但未在用户代码中处理”。我确定我用错了,会尝试这些建议,但为什么是 VS gi
标签: entity-framework entity-framework-6 c#-3.0