gpt4 book ai didi

c# - LINQ 表达式语法如何与 Include() 配合使用以进行预加载

转载 作者:IT王子 更新时间:2023-10-29 04:08:35 29 4
gpt4 key购买 nike

我在下面有一个查询,但我想执行一个 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 中尝试包含时出现错误:

“System.Linq.IQueryable”不包含“Include”的定义,也没有找到接受“System.Linq.IQueryable”类型的第一个参数的扩展方法“Include”(按 F4 添加 using 指令或汇编引用)

我认为这是因为 LINQ 不支持 Include()。

所以我在 VS 中尝试;查询 2 运行,但返回未填充的用户属性。查询 3 扩展方法似乎不存在,尽管它在没有查询的情况下确实存在于 Action 本身。

最佳答案

我已经弄明白了,还是感谢您的建议。解决方案是这样做(我的问题中的第二次尝试):

var qry = (from a in Actions
join u in Users on a.UserId equals u.UserId
select a).Include("User")

intellisense 在查询后没有显示 Include 的原因是因为我需要以下使用:

using System.Data.Entity;

这样做一切正常。

关于c# - LINQ 表达式语法如何与 Include() 配合使用以进行预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761104/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com