흥미로운 하나의 비트 여기에서 전에 건너 왔습니다. 우리가 그것을 만든 이유 때문에, 우리는 접합 테이블에 추가 속성을 가지고 말을 충분 - 간결함을 위해 생략EF6의 다 대다 진 엔티티
public class User
{
public int Id { get; set; }
}
public class School
{
public int Id { get; set; }
}
public class UserSchool
{
[Key]
[Column(Order = 1)]
public int UserId { get; set; }
[Key]
[Column(Order = 2)]
public int SchoolId { get; set; }
[Required]
public virtual User User { get; set; }
[Required]
public virtual School School { get; set; }
}
(기타 추가 속성 : 우리는 수동으로 주석을 사용하여 EF6에서 many-to-many 관계를 만들었습니다 명시 적으로)
이렇게 잘 작동합니다. 복잡한 키를 매핑하는 데 유창한 API를 사용할 수 있지만 중요하지 않습니다. 본질적으로 우리는 junction을 통해 두 개의 표준 테이블을 many-to-many로 결합했습니다. 우승자.
지금, 우리는 또한 같은 다른 테이블에 접합 테이블 (UserSchool
)에 가입 할 필요 대다 :
public class IPAddress
{
public int Id { get; set; }
public string IPAddress { get; set; }
}
public class UserSchoolIPAddress
{
?? what to put in here
public virtual UserSchool UserSchool { get; set; }
public virtual IPAddress IPAddress { get; set; }
}
내가 시도한 유창 API 매핑 및 모두 명명 규칙 및 주석을 통해 ID 속성 지정 : 탐색 엔티티의 속성을 사용하는 것을 좋아하지 않는다고해서 유창한 API 매핑이 실패합니다. 주석으로 바인딩 된 ID는 테이블 스키마에서 UserSchool
속성을 두 번째로 복제하기 때문에 동시성 문제가 발생합니다.
그래서이 시나리오를 처음 접한 사람이 누구이며 해결책을 찾았습니까?
원래의 질문에서 언급했듯이 실제로 우리는 접합 맵핑의 특성으로 추가 데이터를 저장합니다. 예를 들어,'UserSchool' 오브젝트는 실제로 다른 외래 키가 연결되어 있고 권한 레벨이 있습니다. 따라서 수동으로 구성해야합니다. – Katstevens