【问题标题】:Converting SQL with "inner join"s and "like"s to LINQ将带有“inner join”和“like”的 SQL 转换为 LINQ
【发布时间】:2012-02-19 01:42:46
【问题描述】:

我是 LINQ 的新手,并且(很遗憾)我需要将一些混乱的 sql 命令转换为 Linq。 我的数据库中有两个简单的表。第一个是保存名称(列“Name”和“NameID”),另一个表保存昵称(列“Nick”、“NickID”、“FK_NameID”)。每个昵称都有 ID 和指向真实姓名的外键(姓名 ID)。

使用 C#,此代码用于检索其中包含“SomeString”的任何昵称:

comm = new SqlCommand("SELECT Name FROM Names INNER JOIN Nicks ON NameID = FK_NameID AND Nick LIKE '%" + SomeString + "%'", Connection);

据我在谷歌搜索后所见,SQL 命令中的“Like”和“Join”可能会产生复杂的 Linq :\ 你能帮我一下,告诉我什么 LINQ 表达式等于我目前使用的那个 SQL 命令吗?是否有绕过 Linq 并使用 DataSet、DataTables 的方法? 我完全是 Linq 菜鸟:\

【问题讨论】:

    标签: c# linq sql-to-linq-conversion


    【解决方案1】:

    其实很相似:

    var query = from name in names
                join nick in nicks on name.NameId equals nick.FK_NameId
                where nick.Nick.Contains(SomeString)
                select name.Name;
    

    您应该考虑一下您的列名 - FK_NameId 会比 NameId 更好(在我看来)。

    【讨论】:

      猜你喜欢
      • 2020-01-13
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      相关资源
      最近更新 更多