Как узнать общую цену с помощью LINQ Select в пределах Select - PullRequest
0 голосов
/ 30 января 2019

enter image description here

Как вы видите на прикрепленном изображении, я хочу показать totalprice из другой таблицы с тем же ReservationId, когда я ищу данные по идентификатору клиента.Поиск по ReservId прост и прекрасно работает, как этот.

    db = new RoomEntities();
    int ReservId = Convert.ToInt32(txtReservId.Text.Trim());
    var BarPrice = (from u in db.Transactions
    where u.ReservationId == ReservId  
    group u by u.ReservationId into g
    select new
    {
      Total = g.Sum(x => x.TotalPrice) // I will use this to assign in dataGridView of Reservation
    }).FirstOrDefault();

   var SeachByReservationId = (from u in db.Reservation
                               join c in db.Customer on u.CustomerId equals c.CustomerId
                              join r in db.Room on u.RoomId equals r.RoomId
                               where u.ReservationId == ReservId
                               select new
                               {
                                ReservationId = u.ReservationId,
                                RoomNr = r.RumNummer,
                                Name = c.FirstName+" "+c.LastName,
                                IdCard = c.IdCardNr,
                                StartDate = u.StartDate,
                                EndDate = u.EndDate,
                                Totaldays = u.TotalDays,
                                TotalRoomprice = u.TotalPrice,
        // Then I assign BarPrice.Total to TotalBarPrice
                 TotalBarPrice = Convert.ToDecimal(BarPrice.Total),
                                    }
                                ).ToList();
                        dgvReservation.DataSource = SeachByReservationId;

Но если я хочу выполнить поиск по идентификатору клиента, то это будет несколько строк, я имею в виду несколько результатов с одинаковым идентификатором клиента, но с разными ReservationId, если клиентбронировали много раз раньше.Это как старые бронирования, сделанные одним и тем же клиентом.Тогда я не знаю, как поставить итоговую цену на напитки и еду из таблицы транзакций.Я пытаюсь так, но не работает.Пожалуйста, помогите ..

(from u in db.Reservation
 join c in db.Customer on u.CustomerId equals c.CustomerId
 join r in db.Room on u.RoomId equals r.RoomId
 join tr in db.Transactions on u.ReservationId equals tr.TransactionId
 where u.CustomerId == custId.CustomerId
 select new
 {
   ReservationId = u.ReservationId,
   ...... .....
  // like this but not working
 TotalBarPrice =  from tr in db.Transactions
                  where tr.ReservationId = u.ReservationId
                  group tr by ......
                  g.sum(x =>x. ....)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...