Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql INSERT语句与外键约束冲突数据库中发生冲突_Sql_Sql Server_Asp.net Mvc_Database_Entity Framework - Fatal编程技术网

Sql INSERT语句与外键约束冲突数据库中发生冲突

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

我试图在表中添加一个没有团队的球员,我得到以下例外:

INSERT语句与外键约束冲突 数据库中发生冲突

这是我的playerModel,我的外键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\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模式,只有这两个表和关系