gpt4 book ai didi

sql - INSERT statement conflict with the FOREIGN KEY constraint 冲突发生在数据库中

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:41 27 4
gpt4 key购买 nike

我试图在没有团队的表中添加一个玩家,但出现以下异常:

INSERT statement conflicted with the FOREIGN KEY constraint The conflict occurred in database.

这是我的 playerModel,我有一个可以为 null 的外键 id_team,但是当我尝试添加一个玩家时,我得到了这个错误。

public class PlayerModel
{
public int id_player { get; set; }
public string player_surname { get; set; }
public string player_firstname { get; set; }
public int player_skill { get; set; }
public int? id_team { get; set; }
public string name_team { get; set; }
public int player_value { get; set; }
}

我设置了一个断点,当试图保存在数据库中时出现异常

public bool CreateNewPlayer(PlayerModel newPlayer)
{
if (newPlayer == null)
{
return false;
}

if (newPlayer.player_surname==null)
{
return false;
}

if (newPlayer.player_firstname==null)
{
return false;
}

var newDBPlayer = mappingService.MapPlayerFromForm(newPlayer);
dbContext.players.Add(newDBPlayer);

try
{
dbContext.SaveChanges();
}
catch (Exception ex)
{
return false;
}
return true;
}

这里我为数据库模型映射了播放器模型

public players MapPlayerFromForm(PlayerModel formPlayer)
{
var toRet = new players
{
player_firstname=formPlayer.player_firstname,
player_surname=formPlayer.player_surname,
player_skill=formPlayer.player_skill,
id_team=formPlayer.id_team,
player_value=formPlayer.player_value

};
return toRet;
}

我正在使用 jquery 将玩家添加到数据库中。我该如何解决这个问题?

最佳答案

在您的 MapPlayerFromForm 中,检查 formPlayer.id_team 的值,如果为 0,则将值设置为 NULL。此外,将 players 中的 id_team 属性设置为 nullable int,否则它将采用默认值 0。

public class players //consider calling this Player
{
public int? id_team {get;set;}
}

在方法中...

id_team=formPlayer.id_team == 0 ? null : formPlayer.id_team,

参见 ? Operator在 msdn 上。

关于sql - INSERT statement conflict with the FOREIGN KEY constraint 冲突发生在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875436/

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