2010-04-19 7 views
1

약 30 개의 클래스를 보유하고있는이 엔티티 프로젝트가 있으며이 프로젝트는 여러 웹 어플리케이션에서 사용됩니다. 한 응용 프로그램은 30 개의 클래스를 모두 사용하지만 다른 클래스는 3 개의 클래스 만 사용합니다. 내 질문은 : uniqe 응용 프로그램에 필요한 클래스를 어떻게 추가 할 수 있습니까? 내 첫번째 생각은 같은 Web.config의에서 응용 프로그램 설정에서 필요한 클래스의 이름을 추가했다 :Fluent NHibernate - 어셈블리에서 몇 클래스 만 매핑하십시오.

<add key="MappingClasses" value="User,Application,News" /> 

그리고 세션 공장의 구성에 분할 및 루프. 하지만이 사실에 대한 귀하의 의견을 진심으로 기다리고 있습니다! 이것을 달성하는 가장 좋은 방법은 무엇입니까?

답변

0

일부 기준에 따라 자동 완성 모델 생성기에서 클래스를 필터링 할 수 있습니다.

e.q.

/// <summary> 
    /// Provides a filter for only including types which inherit from the IEntityWithTypedId interface. 
    /// </summary> 
    private bool GetAutoMappingFilter(Type t) 
    { 
     return t.GetInterfaces().Any(x => 
            x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEntityWithTypedId<>)); 
    } 

이제 설정 파일을 읽고 리플렉션을 사용하여 필터 기준을 만들 수 있습니다.

관련 문제