Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq2Sql правильный Where для Detail / 3 сообщений из 3, страница 1 из 1
14.12.2009, 14:38
    #36365071
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2Sql правильный Where для Detail
Привет! Есть таблица Master и детальная таблица Detail c колонками

Код: plaintext
1.
2.
3.
4.
create table Detail (
id int IDENTITY(1,1) NOT NULL pk,
MasterId int not null referenc Master(id), -- FK на pk таблицы Master 
typeid int null
)
Как выглядит запрос который выбирает строки Master у которых (строк Master) все строки Detail имеют значение столбца typeid строго из заданного списка скажем 1, 8, 121 ?
...
Рейтинг: 0 / 0
15.12.2009, 10:35
    #36366425
OldWoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2Sql правильный Where для Detail
OldWokerПривет! Есть таблица Master и детальная таблица Detail c колонками

Код: plaintext
1.
2.
3.
4.
create table Detail (
id int IDENTITY(1,1) NOT NULL pk,
MasterId int not null referenc Master(id), -- FK на pk таблицы Master 
typeid int null
)
Как выглядит запрос который выбирает строки Master у которых (строк Master) все строки Detail имеют значение столбца typeid строго из заданного списка скажем 1, 8, 121 ?
Самый простой вариант
MasterTbls.Where(p => p.DetailTbls.All(d => typeslist.Contains((d.tapyId ?? -1))))
сразу даёт парадокс - все строки Master у которых вооще нет Detail этим выражением выбираются!
...
Рейтинг: 0 / 0
15.12.2009, 23:02
    #36368333
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2Sql правильный Where для Detail
А ты подумай логически, как определить, все элементы удовлетворяют условию, или нет элементов?
Прямое ("число строк Details где typeid in (1,3,5)==общее число строк") и инвертированное ("число строк Details где typeid not in (1,3,5) == 0, но число строк строк>0) условия в любом случае требуют дополнительный подсчет общего числа строк в деталях, чтобы исключить такие пустые элементы.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq2Sql правильный Where для Detail / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]