i have the following scenario
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;}
}
for mapping i have used following code snippet :-
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();
By default fluent will ignore the abstract base class that is
BaseClass.
But as in the class **ProcessStep** there is property ContentElements
which returns **IList<BaseClass>** , i am getting an exception:-
NHibernate.MappingException : Association references unmapped class:
BaseClass
If i include the base class using the IncludeBase(typeof(BaseClass))
then it works fine but it creates a table for BaseClass and Derived
classes and the records are linked with FK-PK relationship(**table per
subclass**).
What i want to achieve is **table per concrete class**. that is each
derive class will have it's own table where there will all properties
of derived class + properties in the base class.
Any idea how to achieve it?
--
You received this message because you are subscribed to the Google Groups
"Fluent NHibernate" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fluent-nhibernate?hl=en.