Начните использовать CodeFirst в моих проектах MVC и возникли проблемы.У меня есть база данных с некоторой предопределенной схемой.Есть несколько таблиц:
[Persons]
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](30) NOT NULL,
[Birthday] [datetime] NOT NULL,
[Address] [nvarchar](30) NOT NULL,
[Zip] [nvarchar](5) NOT NULL,
[City] [nvarchar](30) NOT NULL,
[Tax] [money] NOT NULL,
[Memo] [varbinary](max) NULL
[Seminars]
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](20) NOT NULL
и таблица «многие ко многим»
[QualRef]
[SemID] [bigint] NOT NULL,
[RefID] [bigint] NOT NULL
, где SemID ссылается на Seminars.ID, а RefID ссылается на Persons.ID
Я пытаюсь исправить привязку схемы CodeFirst с помощью класса конфигурации:
class PersonConfiguration : EntityTypeConfiguration<Person>
{
internal PersonConfiguration()
{
this.HasMany(i => i.Seminars)
.WithMany(c => c.Persons)
.Map(mc =>
{
mc.MapLeftKey("SemID");
mc.MapRightKey("RefID");
mc.ToTable("QualRef");
});
}
}
и зарегистрировать ее с этим кодом:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().ToTable("Persons");
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new PersonConfiguration());
}
Но когда я запускаю приложение с использованием этих моделейпроизошла ошибка - CodeFirst пытается найти некоторую таблицу "dbo.People" (?!), и она не существует (ожидается).Спасибо за хорошие ответы!