为什么 EF Core 会抛出 "Database already exists"?

Why does EF Core throws "Database already exists"?

我的创业条件:

  1. 我有一个使用 EF Core 的 .Net Core 应用程序(均为 2.2);
  2. 我在本地 SQLServer 上已有一个数据库;
  3. 我使用内置 DI 来提供我的 DbContext:services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString))
  4. 我使用 Fluent API 配置我的上下文(以空方法开始)和 DbContextOptions<MyDbContext> options 构造函数;
  5. 我有几个来自其他项目的迁移存在于数据库中,不存在于我当前的项目.

使用所有提到的我在空模型上执行 (dotenet ef migrations add Initial --project ../MyDALProject) 以获得空的初始迁移。那很好用。然后我 运行 dotenet ef database update --project ../MyDALProject 将此空迁移应用到数据库。不过,我得到 "Database 'TargetDatabase' already exists. Choose a different database name"

顺便说一句:其他项目使用同一个 Db 也一样好。

可能是什么问题?如何让它发挥作用?

P.S.: 其他项目的上下文,我已经提到,被搭建起来并映射到一些现有的表。在脚手架之后,迁移和更新按预期工作。这个问题只依赖于这个项目,它将把新表带到现有的数据库中。

毕竟,我决定手动将脚本应用于数据库,然后发现数据库无法访问...最后,我完美地恢复了它和所有内容运行。

对我来说,我重命名了包含 mdf 和日志目录的 db 目录。 必须归还它的名称才能使迁移正常工作。

仍然无法访问问题。