如何在OfType()之后使用Include()?

时间:2012-08-23 05:38:46

标签: c# .net entity-framework entity-framework-5

我试图在实体框架模型中加载派生类的属性。

我看过all over the place我必须首先使用OfType()过滤集合,然后再使用Include()包含属性:

var persons = Context.Persons
                     .OfType<Employee>()
                     .Include("Compensation")

我不知道如何让Include()工作,因为在我的情况下,Persons是DbSet,OfType()返回IQueryable而IQueryable没有定义Include()方法。

1 个答案:

答案 0 :(得分:16)

放置这个:

using System.Data.Entity;

进入您的使用列表,然后您就可以使用DbExtensions类的Include扩展方法系列:

    public static IQueryable<T> Include<T, TProperty>(this IQueryable<T> source, Expression<Func<T, TProperty>> path) where T : class;
    public static IQueryable<T> Include<T>(this IQueryable<T> source, string path) where T : class;
    public static IQueryable Include(this IQueryable source, string path);

他们接受IQueryable作为第一个参数,并且还有强类型的那个,哪个更好,然后是Include(String)