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 も使用できません。これは、単一の型のみがテーブルにマップされるためです。代わりに MapHiarchy を使用する必要があります。この質問にそのようなマッピングの例を投稿しました。

于 2010-09-01T09:13:36.450 に答える