gpt4 book ai didi

linq - 仅在不为空的情况下,在where子句中使用变量?一种动态的where子句?

转载 作者:行者123 更新时间:2023-12-04 13:17:47 24 4
gpt4 key购买 nike

是否可以在where(LINQ)中包含子句,但前提是其“NOT”为空?

IE。

  where c.Code == sCode && p.Code == code

在这种情况下,变量(标准C#)称为代码...如果其不为空,则上述位置为大..但如果其为空,则我不希望在其中包含位置

IE。
  where c.Code == sCode

在SQL中这样做是这样的
       AND ( ( @code = '' )
OR ( @code <> ''
AND C.Code = @code
)

最佳答案

where c.Code == sCode && (string.IsNullOrEmpty(code) || p.Code == code)

这是针对标准LINQ的,我不知道它是否适用于LINQ to SQL。

编辑:
这通过 short circuit evaluation起作用

如果 c.Code == sCode为false,它将停止求值并返回false
否则,如果 string.IsNullOrEmpty(code)为true,它将停止求值并返回true
否则,返回 p.Code == code

关于linq - 仅在不为空的情况下,在where子句中使用变量?一种动态的where子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209857/

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