使用2个本地Db启用数据库迁移

时间:2019-07-09 14:31:25

标签: c# asp.net asp.net-mvc

我遇到了在asp.net mvc项目上使用数据库迁移的问题,因为我正在使用2个本地数据库。我现在有2个数据库; 1是在项目启动时创建的,用于身份用户(如用户,用户角色等)的管理(aspnet-IdentityTest-201〜)。我在此数据库上启用了迁移,以便将一个admin成员Seed()放入该数据库,并且一切正常。

此后,使用代码优先数据库方法创建第二个数据库来存储模型数据。现在我的问题是,由于我的项目已经启用了迁移(在第一个Db上),如何在第二个Db上也启用迁移?当前,当我运行Update-Database时,它的目标是“ aspnet-IdentityTest-20190707071058”。我希望也可以为我的“ IdentityTest.Models.TestDb”运行此命令(启用自动迁移)。

我害怕在上次执行此操作时再次运行“ Enable-Migrations -ContextTypeName IdentityTest.Models.TestDb”,它删除了当前的config.cs文件,其中包括我的Seed()供管理员使用,我被留下了。仅针对TestDb上下文使用新的配置文件。此后该项目也无法构建

a busy cat

有人可以建议我的2个数据库是否有启用迁移的方法吗?他们是否必须共享相同的migrations / config.cs文件?如果不可能,则使用代码优先方法;如何使我的项目使用aspnet-IdentityTest-201〜Db存储模型信息,而不是像使用IdentityTest.Models.TestDb那样创建新的Db?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,我采取了一种解决方案,其中我成功地对第一个数据库进行编码。我更改了所有出现的数据库名称,并在其后缀2db。我创建另一个连接,并将其命名为{..} 2,目录名称为{..} 2dbSecond。然后,我删除“迁移”文件夹。我将上下文文件分成两个上下文,并在每个上下文中适当地包含了DbSet <>。

键入: enable-migrations -projectname contosouniversitydal -contexttypename schoolcontext
在添加的迁移文件夹的configration.cs中,添加了seed方法 Add-Migration InitialCreateContext1 -ProjectName contosouniversitydal -configurationtypename配置-connectionstring schoolcontext 更新数据库-项目名称contosouniversitydal-配置类型名称配置-连接字符串名称schoolcontext

然后我在其他情况下也做类似的事情。

您可以使用https://coding.abel.nu/2012/03/ef-migrations-command-reference

Enable-Migrations具有-MigrationsDirectory选项,因此您可以在两个不同的数据库之间进行拆分。