mmc*_*ynn 3 linq vb.net asp.net
如何在不调用辅助库System.data.Linq.SqlClient的情况下在LINQ查询中复制以下结果?
Where SqlMethods.Like(e.POSITION, "%A[FGL]7%") _
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我希望这个查询更纯粹是LINQ.
编辑:根据我对Lette的评论,我最初错过了SqlMethods.Like支持的模式匹配.
您的查询看起来像VB,因此您可以直接使用Like运算符,但您需要将%星号替换为*:
Where e.POSITION Like "*A[FGL]7*" _
Run Code Online (Sandbox Code Playgroud)
如果你正在使用C#,你需要在调用将数据存入内存之后使用Lette的建议AsEnumerable()(可能首先过滤任何其他标准,然后调用正则表达式进行进一步过滤)或遵循Ruben的建议.
我下面提到的方法不像SqlMethods.Like方法那样100%,因为模式基本上是转义的.换句话说,它只将其视为文字文本.
Where e.POSITION.Contains("A[FGL]7")
Run Code Online (Sandbox Code Playgroud)
LINQ to SQL将以这种方式转换.NET方法:
LIKE ...%LIKE %...%LIKE %...