我的Parent
班级有Child
,我正在使用TPH,只在[{1}}中公开DBSet<Parent>
。现在,我想使用DBContext
Where(x = x.PropertyInChild)
,其中DBSet<Parent>
是x
,在此过程中投射Child
会显示以下错误。
LINQ to Entities仅支持转换EDM原语或枚举 类型。
答案 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();