복잡한 엔티티 탐색 속성을 정의하는 공식적인 방법은 다음과 같습니다프레임 워크
public class SuperEntity
{
public int Id { get; set; }
//Other properties
}
public class LowerEntity
{
public int Id { get; set; }
public int SuperEntityId { get; set; }
public virtual SuperEntity SuperEntity { get; set; }
//Other properties
}
여기서 중요한 것은입니다 참조 (링크 된 슈퍼 엔티티를 탐색 할 수 있습니다) 그 클래스 public SuperEntity SuperEntity { get; set; }
속성뿐 아니라 public int SuperEntityId { get; set; }
의 ID도 있습니다.
나는 "lower entities"의 public int SuperEntityId { get; set; }
속성을 제외하고 며칠 동안 내 엔터티 디자인을 보냈다. 그래서 가상의 SuperEntity 속성으로 만 탐색합니다. 모든 것이 잘 작동합니다! 하지만 나는 DB에 과도한 테이블을 생성한다고 사람들에게 말했습니다. 내가 확인해 봤는데 그건 사실이 아니야. 내 접근 방식을 사용할 때 DB 테이블에 SuperEntityId 열이 있고 참조 된 엔터티 ID가 자동으로 채워집니다. 이 public int SuperEntityId { get; set; }
필드의 요점은 무엇입니까?
또는 아마도 내가하고있는 일은 4.3과 같은 EF의 "최신"버전에서 사용할 수있게되었을 것입니다.
어쩌면 당신이 옳고 나중에 문제가 발생할 수 있습니다. 감사. –
개체가 동일한 컨텍스트 인스턴스에서 떠 다니고 명시 적으로 연결될 필요가없는 경우 (일반적으로 데스크톱 응용 프로그램에서 필요하지 않음) 사용자는별로 문제가 없을 것입니다. –
그냥 오늘 테스트 데이터베이스에서 중복 기록이 있다는 것을 알았습니다. 그들은 많은 브리지 테이블에 정의 된 관계를 포함하여 정확한 중복이었습니다. 나는 당황 스러웠다.하지만 단순히 새로운 로컬 DB에 문제가 있다고 생각하여 삭제했다. 당신이 묘사 한 것은 훨씬 더 그럴듯합니다. 그리고 나는 네비게이션 속성들을 함께 생각할 생각입니다. –