gpt4 book ai didi

entity-framework-5 - EF 迁移 : The ALTER TABLE statement conflicted with the FOREIGN KEY constraint

转载 作者:行者123 更新时间:2023-12-04 01:26:05 25 4
gpt4 key购买 nike

我有这些课

public class Bid : ...
{
...

[Required]
public virtual TraderUser Trader { get; set; }
}

public class TraderUser : ...
{
...
}

然后我按以下方式更改了这些类并添加了一个新类
public class Bid : ...
{
...

[Required]
public virtual TraderUser TraderUser { get; set; }
}

public class TraderUser : ...
{
...

public int TraderCompanyId { get; set; }

[ForeignKey("TraderCompanyId")]
public virtual TraderCompany TraderCompany { get; set; }
}

public class TraderCompany : ...
{
...
}

当我做了一个 更新数据库我收到以下错误

The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Bid_dbo.TraderUser_TraderUser_Id". The conflict occurred in database "LeasePlan.Development", table "dbo.TraderUser", column 'Id'.



我无法更新数据库。任何帮助深表感谢。

最佳答案

不知道是否为时已晚,但我遇到了同样的问题,也许这可以帮助您。

我无法从您的帖子中看到,但您的 TraderUser 表可能已经插入了一些行。您要完成的是创建新表 TraderCompany 并在 TraderUser 中创建指向 TraderCompany 表的外键关系。

在一次迁移中,您试图为已经包含数据的表创建不可为空的外键关系。

您可以尝试以下操作:

  • 第一次迁移 - 一切都一样,除了这一行
    public int TraderCompanyId { get; set; } 

    应该
    public int? TraderCompanyId { get; set; }

    这将允许您创建可为空的外键列。
  • 使用 TraderCompany 表中的某些行更新现有数据的 TraderCompanyId 列。
  • 第二次迁移 - 更改代码
    public int? TraderCompanyId { get; set; }


    public int TraderCompanyId { get; set; }

    并运行您的迁移。

  • 我希望这能帮到您。

    关于entity-framework-5 - EF 迁移 : The ALTER TABLE statement conflicted with the FOREIGN KEY constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17946963/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com