¿cómo lograr una tabla por clase concreta cuando la clase base es abstracta en nhibernate fluido?
Tengo el siguiente escenari
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;}
}
para el mapeo, he usado el siguiente fragmento de código: -
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();
Por fluidez predeterminada ignorará la clase base abstracta que es BaseClass. Pero como en la clasePaso de proces hay propiedad ContentElements que devuelve IList, obtengo una excepción: - NHibernate.MappingException: la asociación hace referencia a la clase no asignada: BaseClass
Si incluyo la clase base usando elBaseBase (typeof (BaseClass)) entonces funciona bien pero crea una tabla para las clases BaseClass y Derivadas y los registros están vinculados con la relación FK-PK table por subclase). Lo que quiero lograr estable por clase de hormigón. es decir, cada clase derivada tendrá su propia tabla donde habrá todas las propiedades de la clase derivada + propiedades en la clase base. ¿Alguna idea de cómo lograrlo?