0

我有一个大表,我想映射到几个实体。

假设表格如下所示: 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");

但这似乎没有任何作用。

有任何想法吗?

4

1 回答 1

1

我认为您不能拥有 ThingSummaries。你只能拥有事物。您也不能使用 MapSingleType 因为它说只有单一类型将映射到表。您必须改用 MapHearchy。我在这个问题中发布了这种映射的例子。

于 2010-09-01T09:13:36.450 回答