0

我是 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-noob :\

4

1 回答 1

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

于 2012-02-19T01:46:08.157 回答