LINQ to Entities 不识别方法“Boolean IsNullOrWhiteSpace(System.String)”,可以编译通过,执行时会报错。IsNullOrWhiteSpace()不能转化成SQL,同样IsNullOrEmpty()也是不行的。
You need to replace
!string.IsNullOrWhiteSpace(b.Diameter)
with
!(b.Diameter == null || b.Diameter.Trim() == string.Empty)
For Linq to Entities this gets translated into:
DECLARE @p0 VarChar(1000) = ''
...
WHERE NOT (([t0].[Diameter] IS NULL) OR (LTRIM(RTRIM([t0].[Diameter])) = @p0))
and for Linq to SQL almost but not quite the same
DECLARE @p0 NVarChar(1000) = ''
...
WHERE NOT (LTRIM(RTRIM([t0].[TypeName])) = @p0)