gpt4 book ai didi

asp.net - 使用 LINQ 包含与 SqlMethods.Like

转载 作者:行者123 更新时间:2023-12-01 08:20:05 25 4
gpt4 key购买 nike

如何在不调用帮助程序库 System.data.Linq.SqlClient 的情况下在我的 LINQ 查询中复制以下结果?

Where SqlMethods.Like(e.POSITION, "%A[FGL]7%") _

如果可能的话,我希望这个查询更纯粹地使用 LINQ。

最佳答案

编辑:根据我对 Lette 的评论,我最初错过了 SqlMethods.Like 支持的模式匹配。

您的查询看起来像 VB,因此您实际上可以使用 Like operator直接,但您需要更换 %带星号 * :

Where e.POSITION Like "*A[FGL]7*" _

如果您使用 C#,则需要使用 Lette's suggestion调用后 AsEnumerable()将数据存入内存(可能首先过滤任何其他条件,然后调用正则表达式进行进一步过滤)或遵循 Ruben's suggestion .

我在下面提到的方法不像 SqlMethods.Like 方法那样 100% 起作用,因为模式本质上是转义的。换句话说,它仅将其视为文字文本。

只需在其上使用常规 String.Contains 方法:
Where e.POSITION.Contains("A[FGL]7")

LINQ to SQL 将以这种方式转换 .NET 方法:
  • 文本。 StartsWith(...) = LIKE ...%
  • 文本。 包含(...) = LIKE %...%
  • 文本。 EndsWith(...) = LIKE %...
  • 关于asp.net - 使用 LINQ 包含与 SqlMethods.Like,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165453/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com