Кажется, у меня проблемы с моделированием унаследованных классов с использованием JoinedSubClassPart в Fluent NHibernate (выпуск 524).Я видел другие сообщения, указывающие, что подход, который я использую (см. Ниже), должен работать, но во время выполнения я получаю следующее исключение (генерируемое методом ImappingPart.PositionOnDocument из JoinedSubClassPart):
XunitException: FluentNHibernate.Cfg.FluentConfigurationException: неверная или неполная конфигурация использовалась при создании SessionFactory.Проверьте коллекцию PotentialReasons и InnerException для более подробной информации.
---- System.InvalidOperationException: Не удалось сравнить два элемента в массиве.-------- System.NotSupportedException: устарела
Должно ли это на самом деле работать или это устарело в пользу другого подхода?
Я надеюсь, что я простоделать что-то не так, как мне нравится идея возможности динамического добавления отображения подкласса с помощью AddPart ().
Любая помощь будет принята с благодарностью!
Упрощенная версия моего объектаМодель (которая все еще не работает) выглядит следующим образом:
public class MyBaseClass
{
public int Id { get; set; }
public string CommonProperty { get; set; }
}
public class MySubClass1 : MyBaseClass
{
public string MySubClass1Property { get; set; }
}
public class MySubClass2 : MyBaseClass
{
public string MySubClass2Property { get; set; }
}
И мои сопоставления следующие:
public class MyBaseClassMap : ClassMap<MyBaseClass>
{
public MyBaseClassMap()
{
Not.LazyLoad();
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.CommonProperty);
AddPart(new MySubClass1Map());
AddPart(new MySubClass2Map());
}
}
public class MySubClass1Map : JoinedSubClassPart<MySubClass1>
{
public MySubClass1Map()
: base("MyBaseClassId")
{
Not.LazyLoad();
Map(x => x.MySubClass1Property);
}
}
public class MySubClass2Map : JoinedSubClassPart<MySubClass2>
{
public MySubClass2Map()
: base("MyBaseClassId")
{
Not.LazyLoad();
Map(x => x.MySubClass2Property);
}
}