powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq. Как выкрутится с Exists?
6 сообщений из 6, страница 1 из 1
Linq. Как выкрутится с Exists?
    #35963879
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица Customers (customer_id...) и таблица Photos(customer_id, photo, rec_date)
В таблице photos хранятся фотокарточки клиентов... У одного клиента может быть несколько фото Задача получить только самые свежие фотографии у клиентов(если фото вообще есть).
Обычный запрос я бы писал с коррелированным Exists:
select cl.*, p.photo from Clients cl
left join Photos p on cl.client_id = p.client_id
where not exists (select * from Photos p2 where p2.rec_date > p.rec_date and p2.client_id = p.client_id)
В LINQ недопонять как такое выразить.
...
Рейтинг: 0 / 0
Linq. Как выкрутится с Exists?
    #35963926
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что именно не понять?

left join -> SelectMany()

not exists -> collection.Count()==0, например
...
Рейтинг: 0 / 0
Linq. Как выкрутится с Exists?
    #35963948
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

оно конечно хорошо, но как два поля проверять я не допёр пока...
...
Рейтинг: 0 / 0
Linq. Как выкрутится с Exists?
    #35963956
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а left join я делаю через конструкцию:
join s in db.Photos on c.customer_id equals s.custome_id into temp
from st in temp.DefaultIfEmpty()
...
Рейтинг: 0 / 0
Linq. Как выкрутится с Exists?
    #35963995
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю тебе правильней для твоей нужды будет написать следующее:


Код: plaintext
1.
2.
3.
4.
5.
var list = db.Clients
  .Select(p=>new {
    Customer = p,
    Photo = p.Photos.OrderByDescending(p=>p.rec_date).FirstOrDefault()
  })
  .ToList();
...
Рейтинг: 0 / 0
Linq. Как выкрутится с Exists?
    #35964010
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не забудь посмотреть что нагенерит в sql, возможно придется написать иначе.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq. Как выкрутится с Exists?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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