我在MVC3应用程序中使用EF4,我正在寻找一种查看给定工作组中所有联系人的方法。在 Controller 中,我指定了:

var wg = from w in _repo.Workgroups.Include("Contact").ToList();

但出现以下错误:



尽管此方法已内置到EF4中。我可以启用它吗?

最佳答案

是的,该方法已内置到EF中,但在IQueryable接口(interface)上不可用。在ObjectQuery上可用。如果要在IQueryable上调用它,则必须创建自己的扩展名,将当前查询转换为ObjectQuery并执行Include。就像是:

public static IQueryable<T> Include<T>(this IQueryable<T> query, string property)
{
  var objectQuery = query as ObjectQuery<T>;
  if (objectQuery == null)
  {
    throw new NotSupportedException("Include can be called only on ObjectQuery");
  }

  return objectQuery.Include(property);
}

或者,您必须在已经有此类扩展名的地方使用Entity Framework Feature CTP5

关于entity-framework-4 - 找不到Linq-to-Entities包含方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5256692/

10-12 18:41