2012-02-19 52 views
0

我是LINQ的新手,并且(可惜)我需要将一些混乱的sql命令转换为Linq。 我的数据库中有两个简单的表格。第一个是名称(cols“Name”和“NameID”),其他表包含昵称(cols“Nick”,“NickID”,“FK_NameID”)。每个昵称都有ID和外键指向真实姓名(姓名ID)。将SQL与“内部连接”和“like”一起转换为LINQ

使用C#,这段代码被用来以检索包含在里面“SomeString”任何昵称:

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

至于我在Google上搜寻,“像”后看到“加入”在SQL命令可能产生复杂的Linq:\你能帮我一下,告诉我什么LINQ表达式等于我目前使用的SQL命令?是否有任何绕过Linq并使用DataSet,DataTables? 我总的LINQ小白:\

回答

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