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



我的启动条件:

  1. 我在.Net Core上有一个使用EF 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将此"空迁移"应用于数据库。然而,我得到"数据库'TargetDatabase'已经存在。请选择其他数据库名称">

顺便说一下:其他项目也可以使用相同的Db。

问题出在哪里?如何使其发挥作用?

附言:我已经提到,其他项目的上下文都被搭建起来,并映射到一些现有的表中。在scaffold之后,迁移和更新按预期工作。这个问题只与这个项目有关,它将为现有数据库带来新的表。

毕竟,我决定手动将脚本应用到数据库,然后发现数据库无法访问。。。最后,我修复了它,一切都运行得很完美。

对我来说,我重命名了包含mdf和logs目录的数据库目录。必须把它的名字还给它,才能让迁移工作起来。

仍然存在无法访问的问题。

相关内容

  • 没有找到相关文章

最新更新