Code First CTP4 для EF4 - как отобразить несколько объектов (общая база) в одну таблицу - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть большая таблица, которую я хочу сопоставить нескольким объектам.

Скажем, таблица выглядит следующим образом: 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");

, но это, похоже, ничего не дало.

Есть идеи?

1 Ответ

1 голос
/ 01 сентября 2010

Я думаю, что вы не можете иметь ThingSummaries.Вы можете иметь только Вещи.Вы также не можете использовать MapSingleType, потому что он говорит, что только один тип будет сопоставлен с таблицей.Вы должны использовать MapHiearchy вместо этого.Я разместил пример такого отображения в этом вопросе .

...