gpt4 book ai didi

c# - 使 Entity Framework 重用一个值

转载 作者:行者123 更新时间:2023-11-30 17:29:11 26 4
gpt4 key购买 nike

每当我需要用同一个值过滤多个值时,如下:

.Where(lead => lead.UpdateDate >= lastupdatedDate 
|| lead.Address.lasUpdateDate >= lastupdatedDate
)

它生成如下内容:

select *
from lead
where UpdateDate >= @p__linq__1
or lasUpdateDate >= @p__linq__2

然后将值传递两次。有没有办法让生成的 sql 更干净,让它只传递 lastupdatedDate 一次并重用变量?

最佳答案

不幸的是,这是 EF6 查询翻译缺陷。

我知道的唯一(丑陋的)解决方法是通过使用两个中间投影来模拟 let 子句 - 首先以匿名类型包装变量和查询元素,然后在应用使用包装变量过滤:

.Select(lead => new { lead, lastupdatedDate }) // (1)
.Where(e => e.lead.UpdateDate >= e.lastupdatedDate
|| e.lead.Address.lasUpdateDate >= e.lastupdatedDate)
.Select(e => e.lead) // (2)

关于c# - 使 Entity Framework 重用一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51640545/

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