左连接查询LinqToSql的问题 IBookingRepository bookingress=new BookingRepository(); IQueryable bookings=bookingrep.GetAllBookingsByView(); var grid=new System.Web.UI.WebControls.GridView(); grid.DataSource=来自预订中的预订 在booking.UserID等于f.UserID的getAllattendes中加入f到fg中 来自fg.DefaultIfEmpty()中的fgi,其中(f=>f.EventID==booking.EventID) 哪里 booking.EventID==id 选择新的 { EventID=booking.EventID, UserID=booking.UserID, TrackName=booking.Name, BookingStatus=booking.StatusID, AttendeName=booking.FirstName, //name=account.FirstName, 已付金额=预订成本, 与会者地址=booking.DeliveryAdd1, 城市=预订。配送城市, 邮政编码=预订。邮政编码, 日期=预订。已添加日期, hel=fgi==null?null:fgi.HelmetsPurchased}//产品表

左连接查询LinqToSql的问题 IBookingRepository bookingress=new BookingRepository(); IQueryable bookings=bookingrep.GetAllBookingsByView(); var grid=new System.Web.UI.WebControls.GridView(); grid.DataSource=来自预订中的预订 在booking.UserID等于f.UserID的getAllattendes中加入f到fg中 来自fg.DefaultIfEmpty()中的fgi,其中(f=>f.EventID==booking.EventID) 哪里 booking.EventID==id 选择新的 { EventID=booking.EventID, UserID=booking.UserID, TrackName=booking.Name, BookingStatus=booking.StatusID, AttendeName=booking.FirstName, //name=account.FirstName, 已付金额=预订成本, 与会者地址=booking.DeliveryAdd1, 城市=预订。配送城市, 邮政编码=预订。邮政编码, 日期=预订。已添加日期, hel=fgi==null?null:fgi.HelmetsPurchased}//产品表,sql,linq-to-sql,join,left-join,Sql,Linq To Sql,Join,Left Join,您好,上面的查询没有执行,因为它给出了一个错误:指定的LINQ表达式包含对与不同上下文关联的查询的引用。任何人都可以发现查询的问题所在。我认为您的GetAllattendes与预订的上下文不同,因此您无法加入它们。要给出更准确的答案,您需要显示预订和getAllAttendees的来源。与会者和预订是两个独立的表,USERID是它们之间的外键我明白了,但是如何获取与会者?如果您想做您正在做的事情,您应该从同一个存储库中获取它们,也就是说,您不应该使用getAllattendes而是应该使用boo

您好,上面的查询没有执行,因为它给出了一个错误:指定的LINQ表达式包含对与不同上下文关联的查询的引用。任何人都可以发现查询的问题所在。

我认为您的
GetAllattendes
预订的上下文不同,因此您无法加入它们。要给出更准确的答案,您需要显示
预订
getAllAttendees
的来源。

与会者和预订是两个独立的表,USERID是它们之间的外键我明白了,但是如何获取与会者?如果您想做您正在做的事情,您应该从同一个存储库中获取它们,也就是说,您不应该使用
getAllattendes
而是应该使用
bookingress.attendes
之类的工具。这样,预订和与会者应该来自相同的存储库和上下文。
      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