为什么EF Core抛出“数据库已经存在”?

时间:2018-12-11 07:57:17

标签: c# entity-framework ef-core-2.2

我的启动条件:

  1. 我在使用EF Core(均为2.2)的.Net Core上有一个应用程序;
  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将此空迁移应用于数据库。但是,我得到“数据库'TargetDatabase'已经存在。选择其他数据库名称”

顺便说一句:其他项目也可以使用相同的Db正常工作。

可能是什么问题?如何使其运作?

P.S .:我已经提到过,其他项目的上下文已经被搭建并映射到一些现有表中。搭建好支架后,迁移和更新将按预期进行。问题仅取决于该项目,该项目会将新表带到现有数据库。

1 个答案:

答案 0 :(得分:0)

毕竟,我决定手动将脚本应用于db,然后发现该db无法访问...最后,我将其还原,一切运行正常。