데이터베이스를 만들기위한 코드 첫 번째 방법을 사용하기 시작했습니다. 내가 3 개 테이블을 다음 있습니다 :코드 첫 번째 INSERT 문을 FOREIGN KEY 제약 조건과 충돌했습니다.
public partial class AccountHolder
{
public int AccountHolderId { get; set; }
public virtual List<Address> Address { get; set; }
}
public partial class Nominee
{
public int NomineeId { get; set; }
public virtual List<Address> Address { get; set; }
}
public partial class Address
{
public int AddressId { get; set; }
public int AccountHolderId { get; set; }
public AccountHolder AccountHolder { get; set; }
public int NomineeId { get; set; }
public Nominee Nominee { get; set; }
}
여기 AccountHolder
및 Nominee
모두는 주소 1 to *
replationship 있습니다. 내가이 사용되는 유창한 API 코드는 다음과 같습니다
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Address>().HasRequired(p => p.AccountHolder)
.WithMany(p => p.Address)
.HasForeignKey(p => p.AccountHolderId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Address>().HasRequired(p => p.Nominee)
.WithMany(p => p.Address)
.HasForeignKey(p => p.NomineeId)
.WillCascadeOnDelete(false);
}
이제 내 문제는 내가이 예외있어 계좌주의 또는 후보에 데이터를 삽입하려고 할 때마다입니다 :의 계좌를 삽입의 경우
을
가 {FK_dbo.Addresses_dbo.Nominees_NomineeId \ "외래 키 제약 \와 INSERT 문 충돌"CodeFirst.BankContext \ ". 충돌 데이터베이스 \ 발생" "테이블 \"dbo.Nominees \ "열 ' NomineeId '. \ r \ n 문장에 벌이 있습니다. N 말단. "}
후보 삽입
{경우"외래 키 제약 \ "FK_dbo.Addresses_dbo.AccountHolders_AccountHolderId \"와 충돌 삽입 문. 충돌은 테이블 \ "CodeFirst.BankContext \"데이터베이스 \ 발생 "dbo.AccountHolders \"열 'AccountHolderId'. \ 연구 \의 n이 문이 종료되었습니다. "}
Cananybody 방법을 가르쳐주십시오 이 문제를 해결하고 내가 무엇을 놓치고 있습니까?
답변 해 주셔서 감사합니다. 하지만 지금은 내가 nominee 또는 accountholder를 삽입 할 때마다 나는 후보자 삽입의 경우에는 후보자를위한 빈 개체를 만들고 후보자 삽입의 경우 accountholder에 대한 빈 개체를 만들어야 만한다. 두 가지 모두의 기본값을 설정할 수있는 방법이있다. 이러한 탐색 속성 중? – gaurav
난 당신이 가치를 삽입해야합니다 그리고 예를 들어, U 테이블에 값을 삽입하고 그것을 사용해야합니다 그것을 사용하는 것 같아요. –
괜찮 았지만 호기심에 대한 기본값을 둘 다 설정하는 것과 관련된 문제는 무엇입니까? – gaurav