【问题标题】:LINQ 2 SQL Using Contains [duplicate]LINQ 2 SQL 使用包含 [重复]
【发布时间】:2014-09-16 17:38:40
【问题描述】:

我正在尝试将以下 SQL 语句转换为 Link2SQL 语句。

SELECT * FROM Global.CustomData
WHERE CustomDataSource LIKE '%Plugin%'

我已经把它转换成这个语句了

    var query =
      from item in db.CustomDatas
      where item.CustomDataSource.Contains(dataSource)
      select item;

并尝试将 dataSource 设置为以下内容:“Plugin”、“%Plugin%”、“/Plugin/”和“%/Plugin%/”。这些我取自其他例子。不幸的是,虽然 TSQL 语句确实返回了一个值,但我无法让 Linq2Sql 语句返回任何内容。谁能告诉我我做错了什么?

【问题讨论】:

    标签: c# sql linq-to-sql


    【解决方案1】:

    你应该通过"Plugin",我唯一能想到的就是区分大小写。试试这样的:

    where item.CustomDataSource.ToLower().Contains(dataSource.ToLower())
    

    【讨论】:

    • 我试过了,但还是没有运气。我还注释掉了 where 子句,以确认我正在获取数据,并收到两行,其中一行的 CustomDataSource 为“Plugin-0”。我认为这没什么区别,但我使用的是 .Net 4.0。
    • 确保指向正确的数据库。即使没有.ToLower(),它也应该可以工作,因为为Contains 生成的SQL 就像你的SQL。实际上ToLower 对数据库运行时可能会抛出异常。
    • 它没有抛出异常,但无论如何我都会删除它。案件确实相符。删除 WHERE 子句确认我指向了正确的数据库。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    相关资源
    最近更新 更多