Fehler: Bei db.SaveChanges () in .net? Ist eine Verletzung der referenziellen Integritätsbedingung aufgetreten.

Ich habe eine WPF-Anwendung mit erstelltEntity framework 4.0. Wenn ich versuche, einen Datensatz einzufügenPhoneNumber Tabelle es fügt ersten Datensatz erfolgreich ein. Aber wenn ich eine Liste durchlaufe und versuche, ein anderes Element in einzufügenPhoneNumber table it Den Datensatz einfügen, der Fehler wird jedoch wie folgt angezeigt:

InvalidOperationException wurde vom Benutzercode verarbeitet: Die Änderungen an der Datenbank wurden erfolgreich festgeschrieben, aber beim Aktualisieren des Objektkontexts ist ein Fehler aufgetreten. Der ObjectContext befindet sich möglicherweise in einem inkonsistenten Zustand. Innere Ausnahmemeldung: Eine Verletzung der referenziellen Integritätsbedingung ist aufgetreten: Die Eigenschaftswerte, die die referenziellen Bedingungen definieren, sind zwischen Haupt- und abhängigen Objekten in der Beziehung nicht konsistent.

Code in .cs Datei:

protected void InsertContact(List<PhoneNumbersList> phoneList,otherparameters here)
{
             Contact contact = new Contact();
             PhoneNumber phnumber = new PhoneNumber();

            //INSERT into Contacts Table
            contact.PrefixTitleID = cfnm.PrefixTitleID;// cfnm.Title;
            contact.FirstName = cfnm.FirstName;
            contact.MiddleName = cfnm.MiddleName;
            contact.LastName = cfnm.LastName;
            contact.Website = webpageaddress;
            contact.SuffixID = cfnm.SuffixID;
            contact.Gender = gender;
            contact.IMAddress = imaddress;

            db.Contacts.Add(contact);
            db.SaveChanges();
            int contactid=contact.ContactID;
            if (contactid > 0)
            {
                int phid = 0;
                //INSERT into PhoneNumber Table
                foreach (var ph in phoneList)
                {

                    phnumber.PhoneTypeID = ph.PhoneTypeID;
                    phnumber.CountryID = ph.CountryID;
                    phnumber.City = ph.City;
                    phnumber.LocalNumber = ph.LocalNumber;
                    phnumber.Extension = ph.Extension;
                    phnumber.CountryCode = ph.CountryCode;
                    db.PhoneNumbers.Add(phnumber);
                    db.SaveChanges();//Getting Error here
                    phid=phnumber.ID ;
                    if(phid > 0)
                    {
                        //Save in ContactPhoneNumber Table
                        contactphonenumber.ContactID = contactid;
                        contactphonenumber.PhoneNumberID = phid;
                        db.ContactPhoneNumbers.Add(contactphonenumber);
                        db.SaveChanges();
                    }
                }
            }
}

Fehler beim Einfügen des zweiten Datensatzes inPhoneNumber Tabelle. Irgendeine Idee?

Tabellenstruktur:

Hilfe geschätzt!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage