Как добиться таблицы на бетонный класс, когда базовый класс абстрактна в свободном отношении Nhibernate?

У меня есть следующий сценарий

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 будет иметь свой собственный стол, где будут все свойства производных свойств класса + в базовом классе. Любая идея, как это добиться?

9
задан Niraj 12 September 2011 в 08:44
поделиться