我刚接触Linq,我正在尝试检查文本列是否为空(如string.isNullOrEmpty)。
from c in ...
...
select new
{
c.Id,
HasBio = !String.IsNullOrEmpty(c.bio)
}
尝试使用上述查询会产生一个sqlException:
Argument data type text is invalid for argument 1 of len function.
生成的SQL类似于以下内容:
CASE WHEN ( NOT (([Extent2].[bio] IS NULL) OR (( CAST(LEN([Extent2].[bio]) AS int)) = 0))) THEN cast(1 as bit) WHEN (([Extent2].[bio] IS NULL) OR (( CAST(LEN([Extent2].[bio]) AS int)) = 0)) THEN cast(0 as bit) END AS [C1]
len不适用于文本列。我知道数据长度应该用于它们…
我怎么能强迫林基生产这种东西?或者其他测试文本列是否为空的变通方法????
谢谢!
更新
我想到这个
HasBio = c.bio.Substring(0, 1).Length > 0
但是有点难看,还有其他选择吗?