Я искал, как это сделать, и я нашел что-то близкое, но не совсем то, что я ищу. Интересно, может ли это помочь и другим, но мне действительно не помешала бы помощь. У меня есть довольно простой оператор SELECT, который мне нужно преобразовать в LINQ to SQL, чтобы ускорить поиск в нашем программном обеспечении:
SELECT Animals.*
FROM Animals
INNER JOIN AnimalAliases
ON Animals.AnimalID = AnimalAliases.AnimalID
AND AnimalAliases.Alias LIKE N'%USERINPUT%';
По сути, я хочу иметь возможность выполнять внутреннее соединение с несколькими условиями, но одно из условий не имеет ничего общего с одной из таблиц, оператором LIKE, в котором я застреваю.
var query =
from animal in context.Animals
join animalAlias in context.AnimalAliases
on new { animal.AnimalID, "USERINPUT" }
equals new { animalAlias.AnimalID, animalAlias.Alias }
select animal;
но это явно не работает, потому что я не хочу EQUALS для USERINPUT, я хочу выполнять над ним различные операции LIKE..
У кого-нибудь есть понимание?
.Distinct()
, чтобы получить уникальные значения. 30.05.2011