Преобразование SQL с "внутренним объединением" и "подобными" в LINQ
Я новичок в LINQ, и (к сожалению) мне нужно преобразовать некоторые запутанные команды SQL в Linq. В моей базе данных есть две простые таблицы. Первая содержит имена (столбцы "Name" и "NameID"), другая таблица содержит псевдонимы (столбцы "Nick", "NickID", "FK_NameID"). У каждого псевдонима есть идентификатор и внешний ключ, указывающий на настоящее имя (идентификатор имени).
Используя C#, этот код использовался для извлечения любого псевдонима, содержащего в нем "SomeString":
comm = new SqlCommand("SELECT Name FROM Names INNER JOIN Nicks ON NameID = FK_NameID AND Nick LIKE '%" + SomeString + "%'", Connection);
Насколько я понял после поиска в Google, "Like" и "Join" в команде SQL могут привести к сложным Linq:\ Можете ли вы мне помочь и скажите, какое выражение LINQ будет равно той команде SQL, которую я использовал до сих пор? Есть ли какая-нибудь возможность обойти Linq и использовать вместо нее DataSet, DataTables? Я полный Linq-нуб: \
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
(по-моему).