1
嗨,我上的ASPNET核心应用程序,它使用EF核心版本命名为工作对象:EF核心:目前已经在数据库
“Microsoft.EntityFrameworkCore.Design”:“1.1.0” , “Microsoft.EntityFrameworkCore.SqlServer”:“1.1.0”
和dotnet标准1.6.1。
这里是我的scenaro:
- 4的DbContext只有一个数据库
- DBSet或任何其它可以在两个或三个上下文,例如AContext包含表A显示, BContext还含有TABLEA。但他们都不会包括所有的表格,因为我希望特定的上下文关注它的目的。表之间
- 许多foreigne键
这将导致数据库中的DUP表,但要解决这个问题,我在下面
- 完成创建MigrationDBContext包括所有DBSet
- 在这个MigrationDBContext添加迁移
这里是我所得到的
- 成功创建数据库,并与合适的模式和名称
- 错误表时,电话:serviceScope.ServiceProvider.GetService()Database.Migrate()。 错误消息:数据库中已存在一个名为“A”的对象。
unfortunitly,与-v EF核心将不会显示SQL脚本更新数据库命令,脚本迁移只显示简单的创建SQL语句。
我的问题是
- 如何将这种这种情况调试?
- 检查了迁移文件,确实有一种向下和向上的方法,但是这个错误看起来像ef核心只调用迁移 文件中的up方法而没有首先调用down,并且导致一些dup,因为表 仍然是那里。那么,是否有任何切换来控制迁移行为?