У меня есть проект MVC, размещенный в службах приложений Azure с базами данных SQL Azure для данных.У меня есть среда разработки, подготовки / принятия и производства (Служба приложений), а что касается баз данных, у меня есть разработка, подготовка / принятие, производство и локальная БД (mdf).У меня есть 3 профиля публикации (по 1 для каждой среды).
Я (думаю) понимаю, что могу использовать CTOR класса DbContext для установки строки подключения из web.config на основе имени:
Пример.
public ApplicationDbContext(): base("DbContextNameThatResidesInWebConfig")
{
// ...
}
Если я не использую миграцию, я могу без проблем делать то, что хочу.При использовании миграций (так как я не хочу потери данных при изменении моей модели), у меня возникают некоторые проблемы при создании модели, я попытался использовать несколько методов в моем вышеуказанном CTOR:
// this is a custom Seeder that inherits DropDatabaseAlways/WhenModelChanges
System.Data.Entity.Database.SetInitializer(new ContractCareSeeder());
// from what i understand, this tells to use the latest migrations applied
System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Migrations.Configuration>());
Конфигурация.cs:
internal sealed class Configuration : DbMigrationsConfiguration<ApplicationDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
// seeding method ...
}
Но я всегда получаю сообщения об ошибках типа «уже существует таблица с именем XXX ...», даже когда я успешно выполнил команду Update-Database в консоли, она все ещене получается.
Я совершенно заблудился в этом и, похоже, не могу найти лучший способ справиться со своим сценарием.Я хочу иметь возможность использовать несколько профилей публикации (позже мы будем использовать слоты для разработки, но не сейчас), и там также возможна конфигурация.Я могу видеть все мои соединения из моего web.config вместе с флажком обновления базы данных, но я не могу найти правильный способ настроить все вместе ...
Может ли кто-нибудь помочь мне, предложить мне или предоставить какие-либопомощь любого рода?С уважением!