我是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:\
答案 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
(在我看来)。