1

在迁移之前,我在表 Work 和 Factory 之间存在一对多的关系:

public class Work
{
    public int WorkId { get; set; }
    public string Name { get; set; }

    public virtual List<Factory> MyFactory { get; set; }
}

和:

public class Factory
{
    public int FactoryId { get; set; }
    public string Name { get; set; }

    public virtual Work ParentWork { get; set; }
}

然后我尝试将关系更改为 1 到 1:

public class Work
{
    public int WorkId { get; set; }
    public string Name { get; set; }

    [Required]
    public virtual Factory MyFactory { get; set; }
}

public class Factory
{
    public int FactoryId { get; set; }
    public string Name { get; set; }

    public virtual Work ParentWork { get; set; }
}

当我尝试使用以下方法创建迁移时:

添加迁移 MyMigration

我收到以下错误:

ALTER TABLE 语句与 FOREIGN KEY 约束“FK_dbo.Work_dbo.Factory_WorkId”冲突。数据库“EntityFrameworkLab.MyContext”、表“dbo.Factory”、列“FactoryId”中发生冲突

现在,我有几个问题:

1)为什么不能创建迁移,而模型是有效的?

2) 我应该在代码中实现哪些更改?

3)如果我尝试手动还原更改,则会出现相同的错误消息,但这次我尝试执行以下操作:

更新数据库-详细

4

0 回答 0