我在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/