2010-06-09 132 views
0

我一直在使用3.5sp附帶的enity框架。現在我已經爲enityframework 4和asp.net mvc 2重做了一些東西。我碰到過一些東西(在我以前的版本和asp.net mvc 1.0中工作過)。包含在框架框架中4

我有這樣的:

public IQueryable<Booking> GetBookings() 
{ 

    return from b in _entities.Bookings.Include("BookingObject") 
      select b; 
} 

而在我的控制,我有:

return View("Index", new BookingsViewModel 
     { 
      Bookings = _br.GetBookings().ByDay(DateTime.Today) 
     }); 

它似乎沒有包括 「BookingObject」 -entity,所以我可以象在<%= Model.Bookings.BookingObject.BookingObjectName %>我視圖。

這裏可能缺少什麼?我是否需要在圖表中將它包含在實體中?

/M

回答

1

不,它應該像以前一樣工作。我假設你在你的Booking項目上有一個導航屬性BookingObject - 但是如果你沒有,.Include()會出錯。我不認爲你需要設置任何東西,或者至少不是默認情況下沒有做的。至少我會在.edmx編輯器中驗證導航屬性的定義。

你肯定在使用最終的RTM EF4代碼?我們在最終的RC構建不正確的SQL時遇到了一個錯誤,並且沒有針對某個特定的包含序列返回結果,但它比這更復雜得多。

如果失敗,我會使用SQL Server Profiler來跟蹤它使用的SQL並嘗試並調試它。