Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > LINQ (Language-Integrated Query) > Left Join |
Автор: Corey 20.1.2013, 18:49 |
Здравствуйте. Подскажите, пожалуйста, как можно решить такую задачу. Необходимо для запроса использовать Linq, запрос будет работать под разные СУБД. Т.е. что-то вроде такого (в реальности таблиц больше конечно): for(i=0;i<3;i++) //значения i=0,1,2 - входная непостоянная последовательность { var q = from m in A join v in B on m.Id equals v.Id into v1 from v2 in v1.DefaultIfEmpty() where v2.TfId == i select new { m.Id, v2.TfId }; } Вместо for будет использоваться массив со значениями, ну а вот запросы на выходе записывать бы как последущие стобцы, например, в IEnumerable. Т.е. "A" в запросе - тип IEnumerable, "B" - таблица или тоже IEnumerable. Или можно иначе решить? Буду благодарен за любую помощь. |
Автор: jonie 9.7.2013, 21:53 | ||
если linq провайдер не глупый, то поймет этот самый хитрый Contains экстеншен как SQL вариант WHERE id IN(0,1,2) |