我一直在使用3.5sp附带的enity框架。现在我已经为enityframework 4和asp.net mvc 2重做了一些东西。我遇到了一些东西(在我以前的版本和asp.net mvc 1.0中都有效)。
我有这个:
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”实体,所以我可以在我的视图中输入<%= Model.Bookings.BookingObject.BookingObjectName %>
。
这里可能缺少什么?我是否需要在图表中打开它以包含实体或?
/ M
答案 0 :(得分:1)
不,它应该像以前一样工作。我假设你的预订项目上有一个导航属性BookingObject - 但如果你没有,那么.Include()就会出错。我不认为你需要设置任何其他东西,或者至少在默认情况下不会这样做。我至少在.edmx编辑器中验证了导航属性的定义。
您肯定使用最终的RTM EF4代码?我们在最终的RC构建错误的SQL中遇到了一个错误,并且没有为一个特定的包含序列返回结果,但它比这复杂得多。
如果不这样做,我会使用SQL Server Profiler来追踪它正在使用的SQL并尝试调试它。