Использование агрегата MAX в запросе Entity Framework/LINQC#

Место общения программистов C#
Ответить
Anonymous
 Использование агрегата MAX в запросе Entity Framework/LINQ

Сообщение Anonymous »


У меня есть проект, в котором мне нужно использовать Entity Framework Core 7 для базы данных MSSQL, но я застрял в использовании агрегата MAX в SQL как части оператора LINQ.

Учитывайте следующие данные:

Создать таблицу #Member ( MemberID intident(1,1) первичный ключ, Имя VarChar(20) ) Создать таблицу #QuestLog ( Первичный ключ QuestID intident(1,1), MemberID целое число, Квест ВарЧар(20), GoldCollected Int, МонстрыDispatched Int ) Это данные для этих таблиц:

Вставить #Member(FirstName) Values('Wealda') Вставить значения #Member(FirstName)('Tunbin') Вставить значения #Member(FirstName)('Ealhart') Вставить значения #Member(FirstName)('Rancent') Вставьте значения #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) (1, «1000 дверей», 100, 6) Вставьте значения #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) (1, «1000 дверей», 50, 100) Вставьте значения #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) (1, «1000 дверей», 75, 2) Вставьте #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) Values(1, 'Rats!', 555, 1500) Вставьте значения #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) (1, «Убить доктора Лаки», 50, 0) Вставьте значения #QuestLog(MemberID, Quest, GoldCollected, MonstersDispatched) (1, «Убить доктора Лаки», 1000, 1) Вот SQL-запрос, который возвращает мне нужные данные.

Выберите M.FirstName, Q.Quest, Max(Q.GoldCollected) MaxGold От #Member M Внутреннее присоединение #QuestLog Q На M.MemberID = Q.MemberID Группа по M.FirstName, Q.Quest Что дает мне этот набор данных:
Имя Квест MaxGold Вельда 1000 дверей 100 Вельда Убить доктора Лаки 1000 Вельда Крысы! 555
Это то, что у меня есть в запросе LINQ.

var query = from m в dbContext.Member присоединиться к q в dbContext.Quest на m.MemberID равно q.MemberID сгруппировать new { m, q} по new { m.FirstName, q.Quest } в g выберите новый { FirstName = m.FirstName, Quest = q.Quest, MaxGold = ??? }; Здесь я застрял. Как мне преобразовать совокупное значение Max в запрос LINQ и получить соответствующие результаты?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»