Я очень плохо знаком с linq, поэтому ответить на него будет довольно легко, но мне было трудно найти ответ.
У меня есть следующий оператор LINQ, который выполняет простой запрос linq и назначает метки результирующих значений в веб-форме asp.net:
Dim db As New MeetingManagerDataContext
Dim q = From s In db.vwRoomAvailabilities _
Where s.MeetingID = lblMeetingID.Text _
Select s.AllRequestedSingles, s.AllRequestedDoubles, s.AllBookedSingles, s.AllBookedDoubles, SinglesNeeded = s.AllRequestedSingles - s.AllBookedDoubles, DoublesNeeded = s.AllRequestedDoubles - s.AllBookedDoubles
lblSinglesRequested.Text = "Singles Requested: " & q.FirstOrDefault.AllRequestedSingles
lblSinglesBooked.Text = "Singles Booked: " & q.FirstOrDefault().AllBookedSingles
lblSinglesNeeded.Text = "Singles Needed: " & q.FirstOrDefault().SinglesNeeded
lblDoublesRequested.Text = "Doubles Requested: " & q.FirstOrDefault().AllRequestedDoubles
lblDoublesBooked.Text = "Doubles Booked: " & q.FirstOrDefault().AllBookedDoubles
lblDoublesNeeded.Text = "Doubles Needed: " & q.FirstOrDefault().DoublesNeeded
Первоначально должен был быть только один результат строки, и вы можете видеть, что я использую FirstOrDefault (), чтобы получить это единственное значение, которое прекрасно работает. Но дизайн изменился, и теперь запрос может возвращать несколько строк. Теперь мне нужно сгруппировать по идентификатору MeetingID выше и суммировать каждый из выбранных столбцов (т.е. s.AllRequestedDoubles).
Я нашел много группирующих и суммирующих выборок, но ни один из них не подходит для этого сценария.
Можете ли вы помочь мне изменить вышеприведенный LINQ для суммирования результирующих значений вместо того, чтобы просто показывать значения результатов первой строки?