我有以下代码:

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);

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



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

最佳答案

你需要更换

!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/

10-13 03:10