Quelles sont les causes L'instruction INSERT est en conflit avec la contrainte FOREIGN KEY?

Ce code a fonctionné pour moi avant, mais je ne suis pas sûr de ce qui a été la cause de cette erreur. Ma conjecture est que lorsque j'essaie de créer un Joueur, l'Équipe de Données est envoyé à l'Équipe de la table et de son vouloir copier mais depuis TeamId est unique, d'où cette erreur.

Erreur

L'instruction INSERT en conflit avec la contrainte de CLÉ ÉTRANGÈRE "FK_dbo.Players_dbo.Teams_TeamId". Le conflit est survenu dans la base de données "Web", la table "dbo.Les équipes", la colonne "TeamId'. La déclaration a été résilié.

Joueur

public class Player
{
    ...
    ...

    [HiddenInput(DisplayValue = false)]
    [ForeignKey("Team")]
    public int TeamId { get; set; }        

    public virtual Team Team { get; set; }

    ...
}

Équipe

public class Team
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int TeamId { get; set; }

    ....

    public virtual ICollection<Player> Players { get; set; }
}

Contrôleur

//
    //GET: /Player/
    [HttpGet]
    public ActionResult Create()
    {
        PopulateTeamsDropDownList();
        return View();
    }

    //
    //POST: /Player/
    [HttpPost]
    public ActionResult Create(Player model)
    {
        if (ModelState.IsValid)
        {
            using (var db = new EfDb())
            {
                var userProfile = db.UserProfiles.Single(u => u.UserName == User.Identity.Name);
                if (userProfile != null)
                {
                    var player = new Player
                                     {
                                         UserProfile = userProfile,                                             
                                         ....
                                         ....                                              
                                     };                        
                    db.Players.Add(player);                          

                    db.SaveChanges();
                }
            }
        }
        PopulateTeamsDropDownList(model.TeamId);
        return View(model);
    }

    private void PopulateTeamsDropDownList(object selectedTeams = null)
    {
        var teamsQuery = from d in _iService.Teams
                         orderby d.Name
                         select d;
        ViewBag.TeamID = new SelectList(teamsQuery, "TeamId", "Name", selectedTeams);
    }

Vue

<div class="editor-label">
            @Html.LabelFor(model => model.TeamId, "Pick Your Team")
    </div>
    <div class="editor-field">
        @Html.DropDownList("TeamId", String.Empty)
        @Html.ValidationMessageFor(model => model.TeamId)
    </div>

Comment résoudre cette erreur?

source d'informationauteur Komengem