LINQ to SQL 通配符

2024-01-30

如何在 LINQ To SQL lambda 表达式中构建通配符?

这就是我目前所拥有的:

var query = from log in context.Logs select log;
foreach (string filter in CustomReport.ExtColsToFilter)
{
    string tempFilter = filter;
    query = query.Where(Log => Log.FormattedMessage.Contains(tempFilter));
}

直到我尝试在过滤器字符串中传递通配符之前,这种方法都可以正常工作。我正在尝试SqlMethods.Like()但无济于事。

上面的过滤器看起来像这样:"<key>NID</key><value>mcass</value>".

我希望能够通过这样的过滤器:"<key>NID</key><value>%m%</value>"


String.Contains实际上是作为一个LIKELINQ to SQL 中的表达式,因此这些查询是等效的:

query = query.Where(Log => Log.FormattedMessage.Contains("m"));
query = query.Where(Log => SqlMethods.Like(Log.FormattedMessage, "%m%"));

然而,随着SqlMethods.Like,您可以指定更复杂的模式,例如"%m%a%"。对我来说效果很好。在 Visual Studio 内部你无法真正看到差异,因为要匹配的表达式被放在 T-SQL 的参数内。

如果您要在探查器中记录 SQL 查询,它将如下所示:

exec sp_executesql N'SELECT [t0].[ID], [t0].[FormattedMessage]
FROM [dbo].[Log] AS [t0]
WHERE [t0].[FormattedMessage] LIKE @p0',N'@p0 nvarchar(5)',@p0=N'%m%a%'

与问题本身无关,但是String.StartsWith and String.EndsWidth也翻译成SQLLIKE,当然模式略有不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ to SQL 通配符 的相关文章

随机推荐

  • 在谷歌闭包库中创建自定义事件调度程序时出现问题

    我正在尝试在 google Closure js 库中创建自定义事件调度程序 我将此代码基于 fx 文件夹中的动画类 但我不断收到此错误 goog events 未定义 但我将事件包放在顶部 这是我的代码 goog provide test
  • 如何自动重新连接 Rails 6 PostgreSQL 连接?

    我有一个带有一些工作进程的 Rails 6 应用程序 该应用程序使用 PostgreSQL 作为数据库 有时数据库会重新启动 例如次要版本升级 并且工作人员会失去连接 我希望他们能够自动重新连接 但它没有发生 我尝试使用reconnect
  • GWT 中的字符串格式化程序

    如何在 GWT 中格式化字符串 我做了一个方法 Formatter format new Formatter int matches 0 Formatter formattedString format format d numbers s
  • opencv中的HoughCircles函数可以检测圆内的圆吗?

    我在 OpenCV 中遇到了用于圆检测的 HoughCircles 但它有一个参数指定检测到的圆之间的最小距离 我担心的是 如果两个圆同心 即一个圆在另一个圆内 这是否有效 谢谢 沙尚克 如果两个圆的中心相距足够远 霍夫变换将仅返回 2 个
  • 将当前应用程序作为单实例运行并显示前一个实例

    我刚刚实现了这段保护应用程序单个实例的代码 以免应用程序运行两次 现在我想知道如何显示已经运行的原始应用程序进程 这是我在程序类中的代码 static class Program STAThread static void Main con
  • 合并两个已排序的链表

    这是微软笔试时提出的编程问题之一 我给出了我提出的问题和答案 事情是我的答案 虽然看起来很全面 至少对我来说 但我觉得行数可以减少 这是用 C 语言问的 我是一个 Java 人 但我设法编写了它 我的答案可能包含太多类似 Java 的语法
  • 使用重复条目绘制置信区间和预测区间

    I have a correlation plot for two variables the predictor variable temperature on the x axis and the response variable d
  • 如何在 Rstudio 演示文稿中创建表格

    我正在尝试在 RStudio Rpres 文件中创建一个表 以下是我目前在网上搜索到的内容 但对齐不正确 这是最好的方法吗 关于对齐有什么建议吗 Test Right Left Default Center 12 12 12 12 123
  • 基本的多文件上传不适用于移动设备

    我创建了一个非常基本的多文件上传表单示例 参考 https bootsnipp com snippets kWqEj 它在桌面上运行完美 但在移动设备上运行不佳 至少在我测试的移动设备上是这样 On Mobile Xiaomi Mi4 An
  • 在 Eclipse 中配置 Logback

    我正在从 Log4j 切换到 Logback 但我还没有成功地使 Logback 工作 我已经放置了logback xml在我的 Eclipse Java 项目的根目录中 下面是其内容
  • 样式选择下拉框

    我有一个 HTML 选择下拉框 我已经对其进行了样式设置 我遇到的问题是我似乎无法设置选项的背景颜色样式 下面是演示的链接 您可以看到下拉选项有白色背景 我正在尝试更改它 http cssdeck com labs lnroxrua htt
  • 如何从 xml 获取垂直按钮视图

    我想在垂直方向创建一个按钮 也许我们可以通过扩展一个按钮并将画布重新渲染 旋转 到垂直方向 我们可以获得自定义按钮 但我需要从 xml 检查图形表示 我需要一个像这样的按钮 请参阅下面的链接 应该可以解决您的问题 http blog sty
  • 如何在ionic 3中使用jquery

    我正在尝试使用 ionic 3 中的 jquery 在 div 中加载外部网站 TS export class HomePage constructor public navCtrl NavController loadExternalUR
  • 将字符串扫描为十六进制字符数组

    这是我的示例代码 char a char str 20 unsigned char b 8 unsigned char c 8 int argsread int i init 8051 while 1 printf n enter a 64
  • Google 机器人使用 HTML5 模式路由在 AngularJS 网站上爬行

    我们有一个使用 HTML5 路由的 AngularJS 网站 我刚刚做了一些测试 Fetch as Google 运行 结果有点令人困惑 在获取选项卡上 我看到我们的网站在查看源代码中的样子 其中包含所有前端绑定 但并非所有呈现的 HTML
  • Eclipse - 轻松访问常用文件夹?

    有谁知道 Eclipse 在项目中使用 最喜欢的文件夹 的插件吗 我的项目 共有 1000 多个文件夹 中可能有 2 或 3 个文件夹 我经常在它们之间切换 每次使用 Project Explorer 中的滚动条来到达正确的文件夹确实很麻烦
  • 我可以使用什么工具来分析内存使用情况? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个使用 Visual Studio 2008 使用 C 编写的 Windows 应用程序 我想获取内存使用情况的统计信息 以查找内存
  • 重命名(别名)数组元素 C

    不确定什么是 良好实践 或被认为更 正确 我有一个数组 我想通过 arrayname 以外的名称访问各个元素 我可以使用 defines 或指针 也可能使用其他方式 Example define value1 myarray 1 int m
  • 在 html 电子邮件中发送个性化图像的推荐方式是什么?

    我知道已经有人问过类似的问题 但答案几乎总是相同的 您需要在服务器上共享图像并从电子邮件中链接到它 为了我的目的 我不能那样做 图像需要针对我发送电子邮件的每个用户进行个性化 因此将为每个用户动态生成电子邮件 并且不会始终相同 我无法共享图
  • LINQ to SQL 通配符

    如何在 LINQ To SQL lambda 表达式中构建通配符 这就是我目前所拥有的 var query from log in context Logs select log foreach string filter in Custo