2009-05-28 6 views
2

이 사람이 내 머리를 긁적 거리며, 두 번째 눈 쌍이 나를 도울 수 있기를 바랍니다.Fluent NHibernate Automapping error

설정 : 내 데이터 전송 모두가 사용하는 객체 DomainEntity라는 기본 클래스를 가지고

. 기본적으로 Id (정수)라는 속성 만 정의합니다.

내가있어 데이터 전송 객체 : 블로그, 포스트, 사용자 이 DomainEntity이 Core.Domain.Model

에서 나는 다음과 같은 세션 빌더있어 네임 스페이스 Core.Domain에서, 데이터 전송 객체가된다 코드 : 나는 간단한 쿼리를 테스트 할 때

return Fluently.Configure() 
    .Database(SQLiteConfiguration.Standard.UsingFile("c:\blog.db")) 
    .Mappings(x => x.AutoMappings.Add(
     AutoPersistenceModel.MapEntitiesFromAssemblyOf<Blog>() 
      .Where(type => 
       type.Namespace.EndsWith("Domain.Model") && 
       !type.IsAbstract && 
       type.IsClass && 
       type.GetProperty("Id") != null)  
    )).BuildSessionFactory(); 

, 나는 위의 코드 (어딘가에) 및 오류 메시지에 응용 프로그램 예외가있다 :

System.Applicat ionException : 매핑 문서 컴파일되지 수 : (을 XmlDocument를) ---> System.IndexOutOfRangeException을 오류 ---> NHibernate.MappingException 'Core.Domain.DomainEntity'에 대한 매핑 문서를 구축하는 동안 : 인덱스 이 배열 범위 밖에있었습니다.

내 코드/NHibernate가 DomainEntity를 매핑하려하지만 실패하고있는 것으로 보입니다. 위의 코드에서 이 아닌이 명시 적으로 type.Namespace.EndsWith ("Domain.Model")을 사용하여 해당 개체를 매핑한다고 생각했습니다. 그 맞습니까? 내가 여기서 왜가는거야?

도움 주셔서 감사합니다.

.WithSetup(a => a.IsBaseType = type => type == typeof(DomainEntity)) 

그래서, 전체에, 나의 새로운 자동 매핑 코드는 다음과 같습니다 :

return Fluently.Configure() 
       .Database(SQLiteConfiguration.Standard.UsingFile("c:\\blog.db")) 
       .Mappings(x => x.AutoMappings.Add(
        AutoPersistenceModel.MapEntitiesFromAssemblyOf<Blog>() 
         .WithSetup(a => a.IsBaseType = type => type == typeof(DomainEntity)) 
         .Where(type => 
          type.Namespace.EndsWith("Domain.Model") && 
          !type.IsAbstract && 
          type.IsClass && 
          type.GetProperty("Id") != null) 
        )).BuildSessionFactory(); 

이 바로 내 오류를 삭제 한 것 같다 나는 다음 줄을 잊고처럼

답변

관련 문제