powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сгруппировать в зависиомости от null LINQ
5 сообщений из 5, страница 1 из 1
Сгруппировать в зависиомости от null LINQ
    #39804908
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет
что-то затруднился. Есть запрос:

Код: c#
1.
2.
3.
4.
5.
6.
from c in context.Set<Entity>()
join ent1 in context.Set<Entity1>() on c.Id equals ent1.Id into le1 
from e1 in le1.DefaultIfEmpty()
join ent2 in context.Set<Entity2>() on c.Id equals ent2.Id into le2 
from e2 in le2.DefaultIfEmpty()
group e1 by new { e1.StartDate } into gr;



Сдесь сгруппировано по полю из одной таблицы e1, а мне нужно сгруппировать по обеим e1 и e2 в зависимости от null, то есть если e1 = null то группировать по e2, если e2 = null то группировать по e1.
Подскажите плз как сделать?
...
Рейтинг: 0 / 0
Сгруппировать в зависиомости от null LINQ
    #39806301
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortis,

Код: c#
1.
2.
3.
4.
5.
6.
7.
from c in context.Set<Entity>()
join ent1 in context.Set<Entity1>() on c.Id equals ent1.Id into le1 
from e1 in le1.DefaultIfEmpty()
join ent2 in context.Set<Entity2>() on c.Id equals ent2.Id into le2 
from e2 in le2.DefaultIfEmpty()
let groupField = e1 == null ? e2.StartDate : e1.StartDate 
group e1 by new { groupField  } into gr;



В студии не проверял.
...
Рейтинг: 0 / 0
Сгруппировать в зависиомости от null LINQ
    #39807095
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агнец за бортомrigor mortis,

Код: c#
1.
2.
3.
4.
5.
6.
7.
from c in context.Set<Entity>()
join ent1 in context.Set<Entity1>() on c.Id equals ent1.Id into le1 
from e1 in le1.DefaultIfEmpty()
join ent2 in context.Set<Entity2>() on c.Id equals ent2.Id into le2 
from e2 in le2.DefaultIfEmpty()
let groupField = e1 == null ? e2.StartDate : e1.StartDate 
group e1 by new { groupField  } into gr;



В студии не проверял.
Спасибо, но это не сработает так как мы группируем group e1 по e2.StartDate (в случае e1 == null). Там будет группа с null в качестве значений элементов списка.
...
Рейтинг: 0 / 0
Сгруппировать в зависиомости от null LINQ
    #39807233
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rigor mortis,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
from c in context.Set<Entity>()
join ent1 in context.Set<Entity1>() on c.Id equals ent1.Id into le1 
from e1 in le1.DefaultIfEmpty()
join ent2 in context.Set<Entity2>() on c.Id equals ent2.Id into le2 
from e2 in le2.DefaultIfEmpty()
let groupField = e1 == null ? e2.StartDate : e1.StartDate 
let item = e1 == null ? e2 : e1
group item  by groupField into gr;



В студии не проверял.
...
Рейтинг: 0 / 0
Сгруппировать в зависиомости от null LINQ
    #39807383
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агнец за бортомrigor mortis,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
from c in context.Set<Entity>()
join ent1 in context.Set<Entity1>() on c.Id equals ent1.Id into le1 
from e1 in le1.DefaultIfEmpty()
join ent2 in context.Set<Entity2>() on c.Id equals ent2.Id into le2 
from e2 in le2.DefaultIfEmpty()
let groupField = e1 == null ? e2.StartDate : e1.StartDate 
let item = e1 == null ? e2 : e1
group item  by groupField into gr;



В студии не проверял.
Не, пишет, не удаётся определить тип так как нет явного преобразования между Entity1 и Entity2. Видимо, придётся делать отдельные запросы и потом делать concat.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сгруппировать в зависиомости от null LINQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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