Sql INSERT语句与外键约束冲突数据库中发生冲突
我试图在表中添加一个没有团队的球员,我得到以下例外: INSERT语句与外键约束冲突 数据库中发生冲突 这是我的playerModel,我的外键id_team可以为空,但是当我尝试添加一个玩家时,我得到了这个错误Sql INSERT语句与外键约束冲突数据库中发生冲突,sql,sql-server,asp.net-mvc,database,entity-framework,Sql,Sql Server,Asp.net Mvc,Database,Entity Framework,我试图在表中添加一个没有团队的球员,我得到以下例外: INSERT语句与外键约束冲突 数据库中发生冲突 这是我的playerModel,我的外键id_team可以为空,但是当我尝试添加一个玩家时,我得到了这个错误 public class PlayerModel { public int id_player { get; set; } public string player_surname { get; set; } public string player_first
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\u team
的值,如果为0,则将该值设置为NULL
。另外,将players
中的id\u 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,
请参见msdn上的。db模式看起来像什么以及它们之间的关系?这是我的db模式,只有这两个表和关系