새로운 프로젝트를 시작하고 POCO를 디자인 할 때마다 나 자신과 정신적 인 토론을합니다. 외래 키 연결 을 선호하는 것으로 보이는 많은 자습서 / 코드 샘플을 보았습니다 .
외래 키 연결
public class Order
{
public int ID { get; set; }
public int CustomerID { get; set; } // <-- Customer ID
...
}
독립적 인 협회와는 반대로 :
독립 협회
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
나는 과거에 NHibernate와 함께 일했고, 더 많은 OO를 느낄뿐만 아니라 (지연 로딩과 함께) 자신의 ID가 아닌 전체 Customer 객체에 대한 액세스를 제공하는 이점이있는 독립적 인 연결을 사용했습니다. 이를 통해 예를 들어 Order 인스턴스를 검색 한 다음 Order.Customer.FirstName
명시 적으로 조인 하지 않고도 수행 할 수 있습니다. 이는 매우 편리합니다.
요약하자면 내 질문은 다음과 같습니다.
- 독립적 인 연결을 사용하는 데 큰 단점이 있습니까? 과...
- 없는 경우 외래 키 연결을 사용하는 이유는 무엇입니까?