У меня есть следующий сценарий
public abstract class BaseClass
{
public virtual int Id {get; set};
public virtual string Name {get; set;}
}
public class FirstSubClass : BaseClass
{
//properties and behaviour here
}
public class SecondSubClass : BaseClass
{
//properties of SecondSubclass Here
}
public class ProcessStep
{
public virtual IList<BaseClass> ContentElements {get; set;}
}
для сопоставления, который я использовал следующий фрагмент кода: -
this._sessionFactory =
Fluently.Configure().Database(SQLiteConfiguration.Standard
.ConnectionString(@"Data Source=SqliteTestSqlDataAccess.s3db; Version=3; New=True; Pooling=True; Max Pool Size=1;"))
.Mappings(m => m.AutoMappings.Add(AutoMap.Assembly(assemblyWithDomainClasses).Conventions.Add(DefaultCascade.All())))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
по умолчанию свободно проигнорирует абстрактный базовый класс, который является Baseclass. Но как в классе ProcessStep . Есть контеллеры имущества, которые возвращаются Ilist , я получаю исключение: - Nibernate.mappeException: Association Список ссылок Незаменен класс: BaseClass
Если я включаю в себя базовый класс с использованием вкл. «Включить стандарты» (TypeOf (BaseClass)), то он работает нормально, но создает таблицу для базового материала и полученных классов, а записи связаны с FK- Отношения PK ( Таблица на подкласс ). То, что я хочу достичь, это таблицу на бетонный класс . То есть каждый класс Carive будет иметь свой собственный стол, где будут все свойства производных свойств класса + в базовом классе. Любая идея, как это добиться?