В этот раз я почесал голову, так что я надеюсь, что вторая пара глаз поможет мне здесь.
Установка:
У меня есть базовый класс DomainEntity, который используют все мои объекты передачи данных. В основном он определяет только свойство с именем Id (которое является целым числом).
У меня есть объекты передачи данных: блог, почта, пользователь
DomainEntity находится в пространстве имен Core.Domain, объекты передачи данных находятся в Core.Domain.Model
У меня есть следующий код построителя сессии:
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.ApplicationException: ошибка
пытаясь построить карту
Документ для
'Core.Domain.DomainEntity' --->
NHibernate.MappingException: не удалось
скомпилируйте документ сопоставления:
(XmlDocument) --->
System.IndexOutOfRangeException: индекс
был за пределами массива.
Кажется, что мой код / NHibernate пытается сопоставить DomainEntity, но не удается. Я думал, что мой код явно указал , а не для сопоставления этого объекта с использованием type.Namespace.EndsWith ("Domain.Model"). Это верно? Куда я тут сбиваюсь?
Спасибо за любую помощь.