ArrayIndex is not supported in LINQ to Entities



//从这个响应更新信息到数据库

public bool UpdatePassengerInformation(GetResponse response)
{
 try
 {
      using (MyEntities context = new MyEntities())
      {
           var masterID = (from Id in context.BookMaster where Id.BookingId ==     response.BookingId select Id.MasterId).First();
           if (masterID != null)
           {
                for (int i = 0; i < response.Book.Length; i++)
                {
                     var passenger_info = from passenger in context.BookPassenger
                                          where passenger.BookID == masterID &&
                                          assenger.FirstName == response.Book[i].FirstName && passenger.LastName == response.Book[i].LastName select passenger;

//在下面的循环中,我得到了异常" LINQ表达式节点类型'ArrayIndex'不支持LINQ to Entities "。

                    foreach (BookPassenger book_passenger in passenger_info)
                    {
                        book_passenger.TicketId = response.Book[i].TicketId;
                        book_passenger.TicketNumber = response.Book[i].TicketNumber;
                    }
               }
               context.SaveChanges();
           }         
     }
     return true;
}
  catch (Exception ex)
  {
     throw ex;
  }
}

所以不要在query中使用它,只需分配一个新变量并使用这个

for (int i = 0; i < response.Book.Length; i++)
{
      var responseBook = response.Book[i];
      var passenger_info = from passenger in context.BookPassenger
                           where passenger.BookID == masterID &&
                           assenger.FirstName == responseBook.FirstName && passenger.LastName == responseBook.LastName select passenger;
      foreach (BookPassenger book_passenger in passenger_info)
      {
           book_passenger.TicketId = responseBook.TicketId;
           book_passenger.TicketNumber = responseBook.TicketNumber;
      }
}

最新更新