나는 여전히 NHibernate에 익숙하다.지속성을 위해 NHibernate를 사용하는 프로젝트의 데이터 모델
NHibernate를 사용하여 데이터베이스 레코드에서 개체 컬렉션을 만들 때 NH은 컬렉션을 인스턴스화하고 채 웁니다.
실제로 NH을 사용하지 않는 테스트를 작성할 때 어떻게 ISet 컬렉션을 인스턴스화합니까?
나는 여전히 NHibernate에 익숙하다.지속성을 위해 NHibernate를 사용하는 프로젝트의 데이터 모델
NHibernate를 사용하여 데이터베이스 레코드에서 개체 컬렉션을 만들 때 NH은 컬렉션을 인스턴스화하고 채 웁니다.
실제로 NH을 사용하지 않는 테스트를 작성할 때 어떻게 ISet 컬렉션을 인스턴스화합니까?
생성자를 사용하거나 선언에서 필드를 직접 인스턴스화하여 필드를 인스턴스화 할 수 있습니다. NHibernate로 매핑 된 클래스는 영속성을 무시할 수 있습니다.
public class MyEntity
{
private readonly ISet<ChildEntity> children;
public MyEntity()
{
children = new HashedSet<ChildEntity>();
}
public IEnumerable<ChildEntity> Children
{
get { return children; }
}
public void AddChild(Child child)
{
children.Add(child);
}
}
예를 들어 도메인 논리와 같은 데이터 영역 자체를 테스트한다고 가정하면 개체를 직접 만들고 테스트 사례 데이터로 채울 수 있습니다. 아니면 모든 부주의 사례로 데이터베이스를 만들 수 있습니다.
당신은뿐만 아니라 필드에서 컬렉션을 초기화 할 수 있습니다 : 개인 읽기 전용 ISET 어린이 = 새로운 HasedSet (); 그렇게하면 생성자를 작성할 필요가 없습니다. –
재산과 필드 유형이 다른 이유는 무엇입니까? –
@Ronnie Overby : 당신은 무엇을 의미합니까? 매핑 은요? @Marek Tihkan : 사실입니다 (편집 참조). – Paco