我有以下声明:
l.StreamName.Contains(vid == user.Username ? "live" : "")
当我在服务器端捕获 SQL 时,它被转换为以下 SQL:
CAST(
CHARINDEX(
CASE WHEN ('asdfg' = 'dfghy')
THEN N'live'
ELSE N''
END,
[Extent1].[StreamName]
) AS int)
) > 0
Witch 显然不起作用,因为 '' 的 charindex 永远不会 > 0。这是 EF 中的错误还是我不明白的地方。通过跟踪其他类似的语句,我看到 EF 翻译
l.StreamName.Contains("")
进入
[Extent1].[StreamName] like '%%'
这有效。