如果数据库已经存在,则DbContext.Database.EnsureCreatedAsync引发异常

时间:2019-04-12 08:30:42

标签: c# entity-framework-core

我是Entity Framework的新手,正在尝试设置代码以初始化SQL Server LocalDB数据库(如果尚不存在)。

为此,我使用了DbContext.Database.EnsureCreatedAsync()方法,根据文档,该方法将设置数据库(如果尚不存在),或者不执行任何操作(如果数据库已经存在)。 / p>

我第一次调用此方法时,数据库已创建且一切正常。第二次调用此方法时,遇到以下异常:

  

System.Data.SqlClient.SqlException:'数据库'MyDatabase'已经存在。选择其他数据库名称。'

我试图理解为什么当文档说如果数据库已经存在时,EnsureCreatedAsync方法不会执行任何操作时会引发此异常。

DbContext.Database类似乎没有提供任何方法来检查数据库是否已存在,所以我不能自己绕过sureCreatedasync方法。

我要使用的代码如下:

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();

0 个答案:

没有答案