【发布时间】:2011-07-20 11:23:23
【问题描述】:
我在下面有一个查询,但我想执行 Include() 来急切加载属性。 Actions有一个导航属性User(Action.User)
1) 我的基本查询:
from a in Actions
join u in Users on a.UserId equals u.UserId
select a
2) 第一次尝试:
from a in Actions.Include("User")
join u in Users on a.UserId equals u.UserId
select a
但 Action.User 没有填充。
3) 尝试在查询之外将“用户”加载到导航属性中:
(from a in Actions
join u in Users on a.UserId equals u.UserId
select a).Include("User")
在 LINQPad 中尝试 Include 时出现错误:
“System.Linq.IQueryable”不包含“Include”的定义,并且找不到接受“System.Linq.IQueryable”类型的第一个参数的扩展方法“Include”(按 F4 添加 using 指令或程序集参考)
我认为这是因为 LINQ 不支持 Include()。
所以我在VS中尝试了;查询 2 运行,但返回未填充的用户属性。 查询 3 的扩展方法似乎不存在,尽管它在没有查询的情况下存在于 Action 本身上。
【问题讨论】:
-
动作模型有一个名为“用户”的属性?你有 DbContext 吗?
标签: c# linq entity-framework linqpad