Я новичок в Entity Framework и пытаюсь настроить код для инициализации базы данных SQL Server LocalDB, если она еще не существует.
Для этого я использую метод DbContext.Database.EnsureCreatedAsync (), который, согласно документации, создаст базу данных, если она еще не существует, или ничего не сделает, если база данных уже существует.
При первом вызове этого метода создается база данных, и все хорошо. Во второй раз, когда я вызываю этот метод, меня встречают со следующим исключением:
System.Data.SqlClient.SqlException: «База данных« MyDatabase »уже существует. Выберите другое имя базы данных. '
Я пытаюсь понять, почему выбрасывается это исключение, когда в документации говорится, что метод EnsureCreatedAsync ничего не будет делать, если база данных уже существует.
Класс DbContext.Database, похоже, не предоставляет никаких методов для проверки, если база данных уже существует, поэтому я не могу просто обойти метод EnsureCreatedAsync самостоятельно.
Код, который я пытаюсь использовать, выглядит следующим образом:
DbContextOptionsBuilder<MyContext> optionsBuilder = new DbContextOptionsBuilder<MyContext>();
optionsBuilder.UseSqlServer(@"Server=(localdb)\MSSQLLocalDB;Database=MyDatabase;Trusted_Connection=True;AttachDbFileName=MyDatabase.mdf");
MyContext context = new MyContext(optionsBuilder.Options);
await context.Database.EnsureCreatedAsync();