2010-06-09 98 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并尝试并调试它。