2011-07-05 4 views
0
 IBookingRepository bookingResp = new BookingRepository(); 
     IQueryable<bookingTest> bookings = bookingResp.GetAllBookingsByView(); 
     var grid = new System.Web.UI.WebControls.GridView(); 
     grid.DataSource = from booking in bookings 
         join f in getallAttendees on booking.UserID equals f.UserID into fg 
         from fgi in fg.DefaultIfEmpty() //Where(f => f.EventID == booking.EventID) 
         where 
           booking.EventID == id 


          select new 
          { 
           EventID = booking.EventID, 

           UserID = booking.UserID, 
           TrackName = booking.Name, 
           BookingStatus = booking.StatusID, 
           AttendeeName = booking.FirstName, 
          // name = account.FirstName, 
           AmountPaid = booking.Cost, 
           AttendeeAddress = booking.DeliveryAdd1, 
           City = booking.DeliveryCity, 
           Postcode = booking.Postcode, 
           Date = booking.DateAdded, 
           hel = fgi == null ? null : fgi.HelmetsPurchased }// Product table 

Привет, приведенный выше запрос не выполняет ошибку: указанное выражение LINQ содержит ссылки на запросы, связанные с различными контекстами. Любой может определить, что проблема с запросом.Проблемы с левым соединением Query LinqToSql

ответ

1

Я думаю, что ваш getAllAttendees - это другой контекст, чем bookings, так что вы не сможете присоединиться к ним. Чтобы дать более точный ответ, вам нужно показать, откуда берутся bookings и getAllAttendees.

+0

вопрос обновлен .. –

+0

Участники и заказы - это две отдельные таблицы, USERID - это внешний ключ между ними –

+0

Я вижу это, но как получить участников? Вы должны получить их из одного и того же репозитория, если хотите сделать то, что делаете, то есть вместо 'getAllAttendees' вы должны использовать что-то вроде' bookingResp.Attendees'. Таким образом, заказы и участники должны поступать из одного и того же хранилища и контекста. –

Смежные вопросы