Я получаю следующее исключение при запуске метода seed для Entity Framework. Я получаю исключение только один раз, если я запускаю метод seed во второй раз, когда база данных уже была изменена, код работает. Что я могу сделать, чтобы мне не приходилось запускать код дважды при первом создании базы данных? Я не хочу использовать seed и не изменять базу данных с помощью пользовательской миграции.
SqlException: сброс соединения приводит к другому состоянию
чем начальный логин. Ошибка входа. Не удалось войти в систему для пользователя ''.
Невозможно продолжить выполнение, потому что сеанс находится в уничтожении
состояние.
protected override void Seed(Repositories.EntityFramework.ApplicationDbContext context)
{
context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,
string.Format("ALTER DATABASE [{0}] COLLATE Latin1_General_100_CI_AS", context.Database.Connection.Database));
//Exception here
context.Roles.AddOrUpdate(
role => role.Name,
new ApplicationRole() { Name = RoleConstants.SystemAdministrator }
);
}
Если я не использую TransactionalBehavior.DoNotEnsureTransaction
, я получаю исключение на context.Database.ExecuteSqlCommand
Оператор ALTER DATABASE не разрешен в мульти-утверждении
сделка.