如何使用代码优先方法

时间:2018-03-06 15:23:22

标签: sql-server ef-code-first entity-framework-core ef-migrations

在这种情况下,我需要使用实体框架核心向生产策略发布建议。 我有一个使用代码第一种方法生成的现有数据库。在该数据库上,我有一个实体A.该表的相应图表是

enter image description here

然后我创建了一个新表B,其对应的图表是:

enter image description here

我想在A和B之间创建一对多的关系,如下所示:A的实体与B中的一个相关,B的实体可以有多个A.在实体A中,我添加了一个名为IdB的新外键列来表示关系。此列值是必需的,因此不能为null。

enter image description here

当我创建此关系时,我收到以下错误消息: 'ALTER TABLE语句与FOREIGN KEY约束冲突' 按照此链接中的说明操作:

Adding a new relation to existing database using entity framework

我曾经测试过两种方法:

  1. 删除外键实体A上的约束IsRequired,使该字段可为空。执行迁移。然后播种数据。最后执行另一次迁移以添加外键的IsRequired约束。
  2. 添加迁移并修改生成的类方法Up()以使列可以为空,最后添加外键和所需的约束。
  3. 转向生产时:

    对于第一种方法,我需要两个版本,每个版本一个。 对于第二种方法,需要知道要编辑的Up方法的部分,此时,当与其他待处理的迁移文件连接时,难以跟进并修改了它准备进入生产的代码。

    我的问题是建议只使用一个版本然后一个种子数据流程发布到生产的方法。我们可以执行多次迁移,但它们应该只在一个版本中执行。 谢谢 弗朗西斯科

0 个答案:

没有答案