주소 테이블에 연결되는 사용자 테이블이있는 관계를 만들어야합니다. 문제는 역사적인 주소를 저장하기 위해 주소 테이블이 필요하다는 것입니다. 사용자가 주소를 전혀 가지고 있지 않을 수도 있습니다. Entity Framework 4.1 코드 우선 - 두 테이블간에 두 개의 서로 다른 관계를 생성하는 방법
public class user
{
public virtual int ID { get; set; }
...
public virtual int? AddressId { get; set; }
[ForeignKey("AddressId")]
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<Address> HistoricAddresses { get; set; }
}
public class Address
{
public virtual int ID { get; set; }
...
}
나는이 작업을 얻을 수있는 다양한 방법을 시도하고 사용자와 주소 사이에 다른 테이블을 넣어 같은 다양한 오류를 가지고 :
public class HistoricAddress
{
public virtual int ID { get; set; }
public Address HistoricAddress { get; set; }
}
public class user
{
public virtual int ID { get; set; }
public virtual Address CurrentAddress { get; set; }
public virtual ICollection<HistricAddress> HistoricAddresses { get; set; }
...
}
및 기타 다양한 방법을하지만,이 또한 오류를 던졌습니다. 이것을하기위한 적절한 방법이 있어야합니다. 마지막 오류는 다음과 같습니다.
"System.Data.Entity.Infrastructure.DbUpdateException : 항목을 업데이트하는 동안 오류가 발생했습니다. 자세한 내용은 내부 예외 참조 ---> System.Data.UpdateException : 오류가 발생했습니다. 자세한 내용은 내부 예외 참조 System.InvalidOperationException : ReferentialConstraint의 종속 속성이 저장소 생성 열에 매핑됩니다. 열 : 'ID'. "
첫 번째 코드 스 니펫의 문제점은 무엇입니까? 코드 - 첫 번째 규칙은'User'와'Address' 사이의 두 가지 관계로 더 이상 설정하지 않고 올바르게 매핑해야합니다. 그렇지 않습니까? – Slauma