Вы уверены, что сборка, которую вы поставляете в FNH (Assembly.GetExecutingAssembly()
), на самом деле содержит ваши сопоставления?
Измените ваш Mappings
вызов, включив в него метод ExportTo
, который будет экспортировать любые сопоставления, найденные FNH, в указанную папку; проверьте содержимое этой папки и посмотрите, есть ли там все сопоставления. Если это так, то, скорее всего, это не проблема FNH, а проблема с поставщиком Linq (как сказал Майкл).
Mappings(
m => m.FluentMappings
.AddFromAssembly(mappingsAssemly)
.ExportTo(@"C:\"));
Другая вещь, которую вы можете проверить, - это экземпляр конфигурации NHibernate, который NH фактически использует. Для этого используйте BuildConfiguration
вместо BuildSessionFactory
и проверьте результат; существует коллекция ClassMappings
(или ее разновидность), которая должна содержать все сопоставленные сущности.
Если это выглядит нормально, попробуйте создать свой запрос, используя Criteria API или HQL, вместо этого посмотрите, решит ли это вашу проблему (и в этом случае он почти наверняка будет поставщиком linq).