gpt4 book ai didi

Linq 包含 where 子句

转载 作者:行者123 更新时间:2023-12-04 23:33:34 32 4
gpt4 key购买 nike

嘿所以我遇到了这样的情况,我从数据库中拉回一个客户,并通过包含的方式包含所有案例研究

return (from c in db.Clients.Include("CaseStudies")
where c.Id == clientId
select c).First();

但我现在想要做的是在包含的案例研究中添加一个 where 子句,以便它只返回已删除 = false 的案例研究

有点像这样
return (from c in db.Clients.Include("CaseStudies")
where c.Id == clientId
&& c.CaseStudy.Deleted == false
select c).First();

但这不起作用:(任何想法

最佳答案

EF v1.0 不支持开箱即用的条件包含。但是亚历克斯詹姆斯有一个有点hacky的解决方法,在这里解释得很好:http://blogs.msdn.com/alexj/archive/2009/10/13/tip-37-how-to-do-a-conditional-include.aspx

 var dbquery =
from c in db.Clients
where c.Id == clientID
select new {
client = c,
caseStudies = from cs in c.CaseStudy
where cs.Deleted==false
select cs
};

return dbquery
.AsEnumerable()
.Select(c => c.client);

此外,我还没有成功地使这种解决方法适用于多对多关系。

关于Linq 包含 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1680863/

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