将带有“内部联接”和“喜欢”的SQL转换为LINQ

时间:2012-02-19 01:42:46

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

我是LINQ的新手,(遗憾的是)我需要将一些混乱的sql命令转换为Linq。 我的数据库中有两个简单的表。第一个是持有名称(cols“Name”和“NameID”),其他表包含昵称(cols“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);

据我在google搜索后看到,SQL命令中的“Like”和“Join”可能会产生复杂的Linq:\你可以帮帮我,告诉我什么LINQ表达式等于我目前使用的SQL命令?有没有绕过Linq并使用DataSet,DataTables? 我总是Linq-noob:\

1 个答案:

答案 0 :(得分:2)

实际上非常相似:

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(在我看来)。