0

使用 LocalDB 开发实体框架项目时会产生以下错误...

  • class Initializer : DropCreateDatabaseIfModelChanges<Context>与实体框架 6.4 一起使用
  • Database.EnsureDeleted(); Database.EnsureCreated();使用 Entity Framework Core 3.1调用

错误信息

An attempt to attach an auto-named database for file D:\Documents\Visual Studio-Projekte\EF-Test\bin\Debug\netcoreapp3.1\EF-DB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

连接

Context db = new Context(@"Server=(LocalDB)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName="
                        + Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
                          "EF-DB.mdf"))


发生此异常的原因是什么?

4

1 回答 1

-1

当您清除解决方案时会发生这种情况。

当您清除解决方案时,.mdf/.ldf文件与\bin\目录一起被删除,但 SQL Server Express LocalDB 的master数据库保留对(已删除且现在丢失的)数据库文件的引用。

显然,Entity Framework 6.4 中的数据库初始化程序和 Entity Framework Core 3.1 中的数据库创建器都没有处理这种情况而不抛出上述错误消息。

于 2020-07-24T22:16:26.157 回答