我有一个字符串“Word1 Word2”,我想将其转换为查询,例如“Like'%Word1%Word2%'”。
目前我有:
from t in Test
where t.Field.Contains("Word1 Word2")
如何在LINQ2SQL中执行此操作?我是否需要为此创建两个单独的查询,我不能在同一语句中编写它吗?
提前谢谢
答案 0 :(得分:8)
from t in Test
where SqlMethods.Like(t.Field, "%Word1%Word2%")
select t
答案 1 :(得分:0)
那将转化为
LIKE "%Word1 Word2%"
这可能不是你想要的......如果你写这样的查询:
where t.Field.Contains("Word1") && t.Field.Contains("Word2")
它将生成以下SQL:
DECLARE @p0 VarChar(4) SET @p0 = '%ab%'
DECLARE @p1 VarChar(4) SET @p1 = '%cd%'
....
SELECT ...
WHERE ([t0].[Field] LIKE @p0) AND ([t0].[Field] LIKE @p1)
答案 2 :(得分:0)
作为解决方案,也许这就足够了:
from t in Test
where t.Field.Contains("Word1") && t.Field.Contains("Word2")
...在客户端进行一些后期过滤,以确保word2位于word1之后。