实体框架:使用DBSet <parent>处理childern

时间:2017-10-12 19:47:46

标签: entity-framework

我的Parent班级有Child,我正在使用TPH,只在[{1}}中公开DBSet<Parent>。现在,我想使用DBContext Where(x = x.PropertyInChild),其中DBSet<Parent>x,在此过程中投射Child会显示以下错误。

  

LINQ to Entities仅支持转换EDM原语或枚举   类型。

1 个答案:

答案 0 :(得分:0)

您必须在OnModelCreating方法中隐式包含派生实体。

public class SampleContext : DbContext
{
    public DbSet<Parent> Parents { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Child>();
    }
}

要查询子实体,您需要使用 OfType&lt; TEntity&gt; 方法。

var parents = context.Parents.OfType<Child>().ToList();