gpt4 book ai didi

entity-framework - Entity Framework 是否有类似于 Math.Max 的函数?

转载 作者:行者123 更新时间:2023-12-02 02:33:54 25 4
gpt4 key购买 nike

我有一个 Entity Framework 查询如下;

From T In Db.MyTable
Where (T.Col1 - T.Col2) + T.Col3 - T.Col4 > 0 _
Select T

我现在需要确保括号内的部分 '(T.Col1 - T.Col2)' 不会低于零。

在 .Net 中,我将其编码如下(但显然 EF 不喜欢 Math.Max)。
From T In Db.MyTable
Where Math.Max(T.Col1 - T.Col2,0) + T.Col3 - T.Col4 > 0 _
Select T

是否有捷径可寻?我正在使用 EF 2.0(不是最新的,刚刚发布的版本)。

提前致谢

最佳答案

Max isn't supported, but Abs is ;可以吗?否则,您将不得不使用三元表达式。在 C# 中,我会这样做:

from t in Db.MyTable
let m = t.Col1 >= t.Col2 ? t.Col1 - t.Col2 : 0
where m + t.Col3 - t.Col4 > 0

但是,除非您有表达式索引,否则这在 DB 级别将是低效的。所以我建议改为使用计算列。

关于entity-framework - Entity Framework 是否有类似于 Math.Max 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644484/

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