이 사람이 내 머리를 긁적 거리며, 두 번째 눈 쌍이 나를 도울 수 있기를 바랍니다.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();
이 바로 내 오류를 삭제 한 것 같다 나는 다음 줄을 잊고처럼