gpt4 book ai didi

c# - LINQ 表达式中的 String.IsNullOrWhiteSpace

转载 作者:IT王子 更新时间:2023-10-29 03:32:39 27 4
gpt4 key购买 nike

我有以下代码:

return this.ObjectContext.BranchCostDetails.Where(
b => b.TarrifId == tariffId && b.Diameter == diameter
|| (b.TarrifId==tariffId && !string.IsNullOrWhiteSpace(b.Diameter))
|| (!b.TarrifId.HasValue) && b.Diameter==diameter);

当我尝试运行代码时出现此错误:

LINQ to Entities does not recognize the method 'Boolean IsNullOrWhiteSpace(System.String)' method, and this method cannot be translated into a store expression."

我怎样才能解决这个问题并编写比这更好的代码?

最佳答案

你需要更换

!string.IsNullOrWhiteSpace(b.Diameter)

!(b.Diameter == null || b.Diameter.Trim() == string.Empty)

对于 Linq to Entities,这被翻译成:

DECLARE @p0 VarChar(1000) = ''
...
WHERE NOT (([t0].[Diameter] IS NULL) OR (LTRIM(RTRIM([t0].[Diameter])) = @p0))

对于 Linq to SQL 几乎相同但不完全相同

DECLARE @p0 NVarChar(1000) = ''
...
WHERE NOT (LTRIM(RTRIM([t0].[TypeName])) = @p0)

关于c# - LINQ 表达式中的 String.IsNullOrWhiteSpace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606979/

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