我有一个大表,我想映射到几个实体。
假设表格如下:Thing(ThingId,Property1 ... Property20)
现在我有了我的实体:
public abstract class ThingBase
{
public int ThingId { get; set; }
public string Property1 { get; set; }
public string Property2 { get; set; }
}
public class ThingSummary : ThingBase
{
public string Property3 { get; set; }
}
public class Thing : ThingBase
{
public string Property3 { get; set; }
//...
public string Property20 { get; set; }
}
如何设置我的DbContext以使其有效?我有:
public DbSet<ThingSummary> ThingSummaries { get; set; }
public DbSet<Thing> Things { get; set; }
但是我收到错误“无效的对象名称'dbo.ThingSummaries'。”当我尝试查询时。
我尝试过添加OnModelCreating:
modelBuilder.Entity<ThingSummary>().MapSingleType().ToTable("Things");
但这似乎没有做任何事情。
有什么想法吗?
答案 0 :(得分:1)
我认为你不能拥有ThingSummaries。你只能拥有东西。您也不能使用MapSingleType,因为它表示只有单一类型将映射到表。您必须使用MapHiearchy。我在此question中发布了此类映射的示例。