2011-07-05 13 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式には、異なるコンテキストに関連付けられたクエリへの参照が含まれています。いずれにせよ、問合せの問題点を特定することができます。左結合に関する問題LinqToSql

答えて

1

あなたのgetAllAttendeesbookingsとは別のコンテキストのものだと思いますので、参加することはできません。より正確な答えを得るには、bookingsgetAllAttendeesの出所を示す必要があります。

+0

質問が更新されました。 –

+0

出席者と予約は2つのテーブルで、USERIDはそれらの間の外部キーです –

+0

私はそれを見ますが、出席者はどのように取得しますか? 'getAllAttendees'の代わりに、' bookingResp.Attendees'のようなものを使うべきです。あなたがやっていることをできるようにしたいのであれば、それらを同じリポジトリから得るべきです。そうすれば、予約と出席者は同じリポジトリとコンテキストから来るべきです。 –