EF 5 Code First продолжает регенерировать перекрестную таблицу между подклассами, используя TPH

В схеме Table-Per-Hierarchy, представляющей два подкласса в отношениях MM друг с другом:

public class Project {

    public int Id {get; set;}
    ...
    protected Project(){}
}

public class Subproject1 : Project {

    ...
    public virtual IList<Subproject2> LinkedSubprojects2 {get; set;}
}

public class Subproject2 : Project {

    ...
    public virtual IList<Subproject1> LinkedSubprojects1 {get; set;}
}

время от времени я получаю исключение "Модель, поддерживающая контекст, изменилась...", даже если я не внес никаких изменений в свою модель.

Я посмотрел на предложенную миграцию, и что она хочет сделать, это сбросить таблицу Subproject1Subproject2s и заменить его with Subproject2Subproject1s,

Я видел, как это делало это однажды, но потом я делал изменения в модели, поэтому я мало думал об этом. Но, похоже, он может стать серьезной проблемой, если это происходит спорадически, само по себе!

Спасибо за любую помощь!

1 ответ

Наконец-то нашел ответ:

modelBuilder.Entity<Subproject1>()
    .HasMany(p => p.LinkedSubprojects2)
    .WithMany(p => p.LinkedSubprojects1)
    .Map(r =>
        {
            r.MapLeftKey("Subproject1_Id");
            r.MapRightKey("Subproject2_Id");
            r.ToTable("Subproject1Subproject2s");
        });
Другие вопросы по тегам