【问题标题】:Enabling Database Migrations with 2 Local Dbs使用 2 个本地数据库启用数据库迁移
【发布时间】:2019-07-10 07:08:39
【问题描述】:

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

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

我害怕再次运行“Enable-Migrations -ContextTypeName IdentityTest.Models.TestDb”,因为我上次这样做时,它删除了我当前的 config.cs 文件,其中包括我的 Seed() 供管理员使用,我就离开了为 TestDb 上下文提供了一个新的配置文件。在此之后该项目也未能构建

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

提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

    键入: 启用迁移 -projectname contosouniversitydal -contexttypename schoolcontext
    在添加的迁移文件夹中,在 configration.cs 中,添加了种子方法 Add-Migration InitialCreateContext1 -ProjectName contosouniversitydal -configurationtypename configuration -connectionstring schoolcontext update-database -projectname contosouniversitydal -configurationtypename configuration -connectionstringname schoolcontext

    然后我对其他上下文执行类似操作。

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-05
      • 1970-01-01
      • 2022-08-15
      • 2018-03-14
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 2015-09-10
      • 2012-07-26
      相关资源
      最近更新 更多