Добрый день, есть сущность пациент. У него необязательное св-во компания.
public class PatientInfo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RowId { get; set; }
public string InsuranceCompanyCode { get; set; }
public virtual Smo InsuranceCompany{ get; set; }
}
public class Smo
{
[Key]
public string Code { get; set; }
public virtual ICollection<PatientInfo> PatientInfo { get; set; }
}
Мне нужна возможность подсоединять компанию к пациенту, если она есть. Если нет — то нет.
Проблема в том, что при удалении компании, относящейся к пациенту, я получаю:
SqlException : The DELETE statement conflicted with the REFERENCE constraint "FK_dbo.PatientInfo_dbo.Smo_InsuranceCompanyCode". The conflict occurred in database "HS", table "dbo.PatientInfo", column 'InsuranceCompanyCode'.
The statement has been terminated.
Т.е. мы не можем удалить компанию, т.к. она ссылается на пациента.
Мне надо сделать так, чтобы запись можно было удалить, а данные в пациенте либо очищались в этих полях, либо просто навигационное свойство в PatientInfo.InsuranceCompany не подтягивалось при несуществующей записи компании.
Пробовал многочисленные комбинации с DbModelBuilder. Не помогает.
Здравствуйте, DDS, Вы писали:
DDS>Мне надо сделать так, чтобы запись можно было удалить, а данные в пациенте либо очищались в этих полях, либо просто навигационное свойство в PatientInfo.InsuranceCompany не подтягивалось при несуществующей записи компании.
DDS>Пробовал многочисленные комбинации с DbModelBuilder. Не помогает.
http://stackoverflow.com/questions/5048561/entity-framework-set-delete-rule-with-codefirst