나는 여기서 내가 곤경에 처해 있다고 생각한다. FluentNHibernate (ORM)/SQLite (file db)를 사용하여 처음부터 작성한 응용 프로그램이 있습니다. 나는 Unit of Work와 Repository Design 패턴을 구현하기로 결정했다. 나는 WPFS 윈도우 애플리케이션 (MVVM 사용)으로 시작하여 궁극적으로 웹 서비스/ASP.Net을 UI로 구현할 최종 게임에 관해 생각할 필요가있는 지점에 있습니다.FluentNHibernate 작업 단위/저장소 디자인 패턴 질문
이제 ORM 용 도메인 개체 (엔티티)를 만들었습니다. 그리고 지금은 ORM 외부에서 어떻게 사용해야하는지 모르겠습니다. 그것에 대한 질문은 다음과 같습니다.
- MVVM의 모델로 ORM 엔터티 개체를 직접 사용해야합니까? 그렇다면 해당 비즈니스 개체 (예 : 특정 값이 양수이어야하고 다른 속성보다 커야 함)를 해당 개체 개체에 넣을 수 있습니까? 그것은 확실히 더 간단한 접근법이고, 지금 나는 기울고 있습니다. 그러나이 계획을 쓰레기가 버릴까요?
- 위의 대답이 아니오라면 비즈니스 로직을 구현하고이를 MVVM의 모델로 사용하는 새로운 클래스 집합을 만들까요? 모델 객체와 엔티티 객체 사이의 전환을 어떻게 다루겠습니까? 나는 타입 변환기 구현이 여기에서 잘 작동한다고 생각한다.
나는 AutoMapper에 대해 몰랐다. 고마워! 이 클래스를 사용하면 별도의 ViewModel 클래스를 만들고 AutoMapper를 사용하여 해당 속성을 Entity 클래스 속성에 매핑하는 것이 효율적이고 효율적입니다. 간단한 납작한 작업 (또는 작은 영사)이 가능합니다. 내가 아는 두 번째 부분은 까다로 우며 단단한 NHibernate/작업 단위 디자인 패턴 지식이있는 사람이 필요합니다. 찔러보고 싶다면 고마워! – Echiban
네, NHibernate에 대해 충분히 정통하지 않아서 어떻게 설정하는 것이 최선인지 알려주지 않습니다. ISessionFactory, Session, ITransaction을 설정하는 데는 여러 가지 방법이 있습니다. 개인적으로, 저는 그것들과 직접 작업하고 Inversion of Control 컨테이너를 사용하여 Repository 클래스에 ISession을 전달하는 것을 좋아합니다. 지금까지 설정을 마치면 FluentNHibernate 문서가 꽤 희박하고 작업 단위를 추가하는 데 복잡성이 따르지 않으므로 필자는 FluentNHibernate 설명서를 사용하지 않을 것입니다. –
나는 CodeCampServer (http://code.google.com/p/codecampserver/)를 추천한다. NHibernate, AutoMapper, IoC (StructureMap)를 사용하는 아주 좋은 구현이 있습니다 – Rookian