我的启动条件:
- 我在.Net Core上有一个使用EF Core的应用程序(均为2.2(
- 我在本地SQLServer上有一个现有的数据库
- 我使用内置的DI来提供我的DbContext:
services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString))
- 我使用Fluent API来配置我的上下文(从空方法开始(和
DbContextOptions<MyDbContext> options
构造函数 - 我已经从数据库中存在的其他项目进行了多次迁移,并且我的当前项目中不存在
使用所有提到的,我在一个空模型上执行(dotenet ef migrations add Initial --project ../MyDALProject
(以获得一个空的初始迁移。这很好。然后,我运行dotenet ef database update --project ../MyDALProject
将此"空迁移"应用于数据库。然而,我得到"数据库'TargetDatabase'已经存在。请选择其他数据库名称">。
顺便说一下:其他项目也可以使用相同的Db。
问题出在哪里?如何使其发挥作用?
附言:我已经提到,其他项目的上下文都被搭建起来,并映射到一些现有的表中。在scaffold之后,迁移和更新按预期工作。这个问题只与这个项目有关,它将为现有数据库带来新的表。
毕竟,我决定手动将脚本应用到数据库,然后发现数据库无法访问。。。最后,我修复了它,一切都运行得很完美。
对我来说,我重命名了包含mdf和logs目录的数据库目录。必须把它的名字还给它,才能让迁移工作起来。
仍然存在无法访问的问题。