지속성 NHibernate에 또 다른 SQL 서버에 엔티티 참조 실체와 도메인을 설계하는 방법 :나는 두 가지 간단한 개체가 도메인 디자인해야
public class User
{
public virtual int Id { get; protected set; }
public virtual string Email { get; protected set; }
public virtual Country Country { get; protected set; }
...
}
public class Country
{
public virtual int Id { get; protected set; }
public virtual string Name { get; protected set; }
...
}
그것은 모든 좋은 도메인 세계에서 분명를하지만 문제는 사용자입니다 및 국가는 두 개의 서로 다른 서버에있는 두 개의 서로 다른 데이터베이스에 보관되었습니다 (두 서버는 모두 MSSQL 2005 서버입니다).
그렇다면 NHibernate에서 다른 SQL 서버에 걸쳐서 엔티티의 지속성을 어떻게 올바르게 구현해야합니까?
참조에 개체 대신 ID를 사용 하시겠습니까? 네, 그렇습니다.하지만 도메인 객체를 DTO와 비슷하게 만드는 것은 전체 도메인 작업을 어렵게합니다. 그리고 IUserRepository는 User Entity를로드하기 위해 ICountryRepository를 사용할 것을 요구합니다.
연결된 서버는 무엇입니까? 흠 ... 어쨌든 나는 그것을 좋아하지 않는다 (분산 트랜잭션과 XML 컬럼 없음). 그리고 내가 그것들을 사용할 때 알아야 할 것이고 무엇보다 중요한 것은 어떻게 연결된 서버와 효과적으로 작동하도록 NHibernate를 설정해야 하는가?
다른 해결책이 있습니까?
음 ... 명확히하기 : NCommon을 사용하면 개체를 투명하게 매핑 할 수 있으며 도메인 모델을 변경하지 않아도됩니다. 그런 식으로 작동하지 않을 수 있으며 국가 엔티티를 countryId 값 개체로 변경해야합니까? –
NCommon을 사용하면 Country를 CountryID로 변경하고 식별자 만 저장하면됩니다.왜 나는 대답하는 대답을 설명 할 것입니다. – HackedByChinese
알았어. 그러나 그 변화가 NCommon을 사용하는 데 어떻게 도움이 될까요? 내가 올바르게 이해했다면 다른 저장소에서 수동으로 국가 엔티티를로드해야 할 것입니다. NCommon 없이도 할 수 있습니다. –