Ошибка: Нарушение ограничения ссылочной целостности произошло в db.SaveChanges () в .net?

Я создал приложение WPF сEntity framework 4.0. Когда я пытаюсь вставить запись вPhoneNumber В таблицу он вставляет первую запись успешно. Но когда я перебираю какой-то список и пытаюсь вставить другой элемент вPhoneNumber добавьте запись, но покажет ошибку как:

Исключительная ситуация InvalidOperationException была обработана кодом пользователя: изменения в базе данных были успешно приняты, но при обновлении контекста объекта произошла ошибка. ObjectContext может быть в несовместимом состоянии. Внутреннее сообщение об исключении: Произошло нарушение ограничения ссылочной целостности: Значения свойств, которые определяют ссылочные ограничения, не согласованы между основным и зависимыми объектами в отношении.

Код в файле .cs:

protected void InsertContact(List 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();
                    }
                }
            }
}

Ошибка получения после вставки второй записи вPhoneNumber Таблица. Любая идея?

Структура таблицы:

Помощь оценена!

Ответы на вопрос(1)

Ваш ответ на вопрос