Структура сущностей выбирается с помощью группы по - PullRequest
0 голосов
/ 23 мая 2018

У меня есть простая таблица для изображений с полями (id, path, details). У меня есть несколько изображений, которые имеют одинаковый путь (разные id и details).Я знаю, что база данных должна быть нормализована, но это не от меня.Я хочу получить все изображения, но только один раз для каждого пути.Мой SQL-запрос, который работает, это

select * from images Group by path order by id

Проверка пример

У меня проблема с переводом этого в запрос структуры сущностей (linq) в VB.NET.
Единственное, что мне удается сделать, - это получить только пути, но мне нужно полное изображение (мне не важен идентификатор, но я хочу получить подробности)

1 Ответ

0 голосов
/ 23 мая 2018

Если вы хотите группировать с Entity Framework 6 или Core на самом деле не имеет значения, вы просто должны использовать:

var result = EFContext.Images.GroupBy(i=> i.Path)

EFContext is clear.Изображения - это DBSet, по которому вы хотите сгруппировать.

Если вы действительно хотите выполнить запрос и получить все результаты, я бы посоветовал вам использовать:

var result = await EFcontext.Images.AsNoTracking().GroupBy(i=>i.Path).ToListAsync()

Это, конечно, требуетваш метод помечен как асинхронный.В противном случае вы можете просто пропустить ожидание и использовать ToList ().До ToList () возвращаемое значение было бы IQueryable, которое можно использовать для добавления других условий, таких как Где или Выбор.Как только вы используете toList, запрос будет выполнен к базе данных.

AsNoTracking помечает EF, что вы не хотите отслеживать результаты, и он будет (немного) быстрее.Это означает, что изменения, которые вы внесете в результат, не будут отслеживаться ef, и когда вы хотите сохранить его, вы должны прикрепить его раньше.Я бы рекомендовал всегда использовать его, если вы не планируете использовать функции отслеживания и обновления их обратно в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...