包含在实体框架4中

时间:2010-06-09 09:11:20

标签: asp.net-mvc entity-framework

我一直在使用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

1 个答案:

答案 0 :(得分:1)

不,它应该像以前一样工作。我假设你的预订项目上有一个导航属性BookingObject - 但如果你没有,那么.Include()就会出错。我不认为你需要设置任何其他东西,或者至少在默认情况下不会这样做。我至少在.edmx编辑器中验证了导航属性的定义。

您肯定使用最终的RTM EF4代码?我们在最终的RC构建错误的SQL中遇到了一个错误,并且没有为一个特定的包含序列返回结果,但它比这复杂得多。

如果不这样做,我会使用SQL Server Profiler来追踪它正在使用的SQL并尝试调试它。