2011-04-11 3 views
2

나는 정말로 내 질문에 어떻게 대답 할 지 잘 모르겠다. 나는 약간의 피드백에 따라 그것을 바꿀지도 모른다.Entity Framework 코드 우선 POCO와 관계를 설정하는 이유/이유는 무엇입니까?

내 POCO에서 참조 관계를 설정하는 것이 좋습니다. 그러면 하위 또는 상위에서 상위 레코드를 찾을 수 있습니까? 항상 항목이나 항목 모음을 조회하는 "역전"방법이있는 것이 좋습니다. 내 응용 프로그램에 크게 달려 있다는 것을 알고 있지만, 응용 프로그램을 만들기 전에이 작업을 확실히하고 싶습니다. 그래서 두 개의 테이블이 있다고 가정 해 봅시다 : States와 Countries. 국가는 국가와의 관계 (다 대일)와 관계가 있습니다 (일대 다). 주에 대한 내 수업은 국가에 대한 속성을 가지며 내 국가 클래스는 주 집합에 대한 속성입니다. 이것은 꽤 표준입니다.

이 예에서는 국가가 관련 상태를 조회하도록 허용 할 수 있습니다. 누군가가 컬렉션에 대한 항목을로드하는 오버 헤드가 없거나 단일 항목에 대한 오버 헤드가 없기 때문에 그 연관성에 대해 신경 쓸 필요가없는 시간을 생각할 수 있습니까?

+0

귀하의 질문은 ** 그렇게 **하는 방법이 아니므로, ** ** 그렇게하는 이유는 무엇입니까? 옳은? –

+0

@Sergio : 네. 나는 그것을 내 표제에 넣으려고했다. 나는 그것을 업데이트했다. – DDiVita

답변

2

엔티티의 디자인 탈락에 대한 자세한 내용입니다. 먼저 코드를 사용하는 경우 데이터베이스에 관계를 만들려면 항상 탐색 속성 on at least one side이 필요합니다. 간단한 접근 방식으로 시작하여 그것이 의미가있는면에서 속성을 정의하고 어딘가에 필요할 경우에만 다른면에 속성을 추가 할 수 있습니다.

부모가없는 자식 엔티티를 사용하지 않는다는 것을 알고있는 상황이 있습니다 (부모가 없으면 자식 엔티티가 존재할 수없는 집계 루트에 대한 이론으로 이어진다). 이 경우 자식은 부모에게 네비게이션 속성을 가질 필요가 없습니다.

State이 속하는 Country없이 작업 하시겠습니까? 그렇다면 어느 것이 StatesCountry이 포함되어 있는지 알기를 원하지만, 같은 시간에 이 State에 속하므로 어느 쪽에나 탐색 속성을 정의하는 것이 합리적인지 알고 싶을 것입니다.

+0

이것은 내가 찾고있는 링크이며 당신이 보낸 링크가 ​​너무 많은 도움이되었습니다! – DDiVita