я получаю сообщение об ошибке при попытке выполнить команду EF 4.3.1 адд-Миграции:Entity Framework ошибки 4.3.1 дополнения миграции: «модель поддержав контекст изменился»
«Модель подпирают ... контекст изменился с момента создания базы данных ».
Вот одна последовательность, которая получает ошибку (хотя я пытался, наверное, с десяток вариантов, которые также все терпеть неудачу) ...
1) Начните с базой данных, которая была создана EF Code First (то есть, уже содержит таблицу _MigrationHistory с только строкой InitialCreate).
2) Модель данных и базы данных кода приложения синхронизирована в данный момент (база данных была создана CF при запуске приложения).
3) Поскольку у меня есть четыре DBC-контекста в моем проекте «Services», я не запускал команду enable-migrations (она не обрабатывает контексты multipe). Вместо этого я вручную создал папку Migrations в проекте Services и файле Configuration.cs (в конце этого сообщения). [Я думаю, что я где-то это читал)
4) Когда база данных еще не изменена, и приложение остановлено, я использую редактор VS EDM, чтобы внести тривиальные изменения в мою модель данных (добавьте одно свойство в существующий объект), и заставить его генерировать новые классы (но не изменять базу данных, очевидно). Затем я перестраиваю решение, и все выглядит нормально (но не удалять базу данных или перезапускать приложение, конечно).
5) я запускаю следующую команду (PMC, где "App" является именем одного из классов в Configuration.cs):
PM> надстройку миграция App_AddTrivial -conf основе App -project Services -startup Услуги -verbose
... который не выполнен с ошибкой «Модель ... изменилась. Рассмотрите возможность использования первой ошибки переноса ...».
Что я делаю неправильно? И кто-нибудь еще видит иронию в инструменте, который говорит мне использовать то, что я уже пытаюсь использовать ;-)
Каковы правильные шаги для настройки решения, начиная с базы данных, созданной EF CF ? Я видел сообщения, в которых говорилось, что начальная миграция выполняется с -ignorechanges, но я пробовал это, и это не помогает. На самом деле, я провел весь DAY-тестирование различных перестановок, и ничего не работает!
Должно быть, я делаю что-то действительно глупое, но я не знаю, что!
Благодаря,
DadCat
Configuration.cs:
пространства имен mynamespace { внутренний запечатаны класс App: DbMigrationsConfiguration { общественное приложение() { AutomaticMigrationsEnabled = ложь; MigrationsNamespace = "Services.App.Repository.Миграции "; }
protected override void Seed(.Services.App.Repository.ModelContainer context)
{
}
}
internal sealed class Catalog : DbMigrationsConfiguration<Services.Catalog.Repository.ModelContainer>
{
public Catalog()
{
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "Services.Catalog.Repository.Migrations";
}
protected override void Seed(Services.Catalog.Repository.ModelContainer context)
{
}
}
internal sealed class Portfolio : DbMigrationsConfiguration<Services.PortfolioManagement.Repository.ModelContainer>
{
public Portfolio()
{
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "Services.PortfolioManagement.Repository.Migrations";
}
protected override void Seed(Services.PortfolioManagement.Repository.ModelContainer context)
{
}
}
internal sealed class Scheduler : DbMigrationsConfiguration<.Services.Scheduler.Repository.ModelContainer>
{
public Scheduler()
{
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "Services.Scheduler.Repository.Migrations";
}
protected override void Seed(Services.Scheduler.Repository.ModelContainer context)
{
}
}
}
Что именно вы пытаетесь достичь? Переходы EF не поддержка обработки нескольких контекстов для единой базы данных - исключение использования «Enable-Migrations» не меняет ее. Также создание классов с помощью EDM-дизайнера - это не первый код. –