Я пытаюсь переписать приведенный ниже запрос в оператор Linq.Запрос должен вернуть список объектов «Пользователь», содержащий четыре свойства (Id, FirstName, LastName, Email).
SELECT DISTINCT Id, FirstName, LastName, Email FROM User
LEFT JOIN Booklet ON Booklet.UserId = User.Id
WHERE Booklet.YearReleased = @YearOfRelease
ORDER BY LastName ASC
Теперь у меня есть что-то подобное, но Group by неверна, и все этоне очень хорошо выглядит кодирование ... я чувствую, что это можно много оптимизировать в одно утверждение, но я не могу этого сделать.(демонстрационный год '18').
List<User> = new List<User>();
List<int?> lstUserIds = db.Booklet.GroupBy(x => x.UserId && x.YearReleased)
.Where(x => x.YearReleased == 18)
.OrderBy(x => x.LastName)
.Select(x => x.UserId)
.ToList();
foreach (int iUserId in lstUserIds )
lst.Add(db.User.First(x => x.Id == iUserId));