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");
});