DbUpdateException auf SaveChanges wenn das Kind foreign key bereits vorhanden ist - in Entity Framework Code First

[ Verwendung von Code First DbContext mit Entity Framework 5.0 RC ]

Person mit 2 Navigations-Eigenschaften, /2 Fremdschlüssel

public class Compositon
{

    public string Id { get; set; }

    public string SimpletonId { get; set; }

    [ForeignKey("SimpletonId")]
    public Simpleton Simpleton { get; set; }

    public string CompanitonId { get; set; }

    [ForeignKey("CompanitonId")]
    public Companiton Companiton { get; set; }
}

First-Pass - SaveChanges Leeren Datenbank Funktioniert

var composition = new Compositon();
compositon.Id = "UniquePrimaryKey";
var simpleton = new Simpleton();
//This foreign key does not exist in database yet
simpleton.Id = "Simpleton1";
composition.Simpleton = simpleton;
var companiton = new Companiton();
companiton.Id = "SomeOther1";
composition.Companiton = companiton;
//Repositor references the DbContext
Repositor.Compositons.Add(composition);
Repositor.SaveChanges();

Zweiten Durchgang Vorhandene Kind Fremdschlüssel Führt zu Übergeordneten Fault

var composition = new Compositon();
compositon.Id = "AnotherUniquePrimaryKey";
var simpleton = new Simpleton();
//This foreign key already exists in database
simpleton.Id = "Simpleton1";
composition.Simpleton = simpleton;
var companiton = new Companiton();
companiton.Id = "SomeOther2";
composition.Companiton = companiton;
Repositor.Compositons.Add(composition);
Repositor.SaveChanges();

DbUpdateException: An error occurred while updating the entries.

Ich muss in der Lage sein, speichern Sie diese parent-Klassen in der Datenbank, denn Sie sind einzigartig, obwohl Sie enthalten manchmal eine Navigations-Eigenschaft, die bereits gespeichert - wie kann ich die Eltern von diesem Kind Primärschlüssel Konflikt?

InformationsquelleAutor Cel | 2012-06-12
Schreibe einen Kommentar