It's probably got something todo with the layers between, I'm pretty sure the SubclassMap only checks for direct parents when associating classes.
On Thu, Aug 20, 2009 at 2:50 AM, Everett Muniz <[email protected]>wrote: > Using a pretty current PRE-RC1 set of binaries the follow works > brilliantly... > public class ColorSourceMapping : ClassMap<ColorSource> > { > public ColorSourceMapping() > { > Table("ColorSource"); > Id(typeof(Guid), "ID"); > JoinedSubClass<ConstantColorSource>("ID", s => > { > s.Map(x => x.Alpha); > s.Map(x => x.Blue); > s.Map(x => x.Green); > s.Map(x => x.Red); > }); > JoinedSubClass<SubstringColorSource>("ID", s => > { > s.Map(x => x.Length); > s.Map(x => x.Start); > s.References(x => x.RecordAccessor) > .Column("RecordAccessorID") > .Cascade.All(); > s.References(x => x.ColorMap) > .Column("ColorMapID"); > }); > } > } > > ConstantColorSource is a direct subclass of ColorSource > (ColorSource->ConstantColorSource). However, there are a few subclasses > between SubstringColorSource and ColorSource (ColorSource > ->..->..->SubstringColorSource). Here's how I tried to convert this to the > subclass approach... > > public class SubstringColorSourceMapping : > FluentNHibernate.Mapping.SubclassMap<SubstringColorSource> > { > public SubstringColorSourceMapping() > { > KeyColumn("ID"); > Map(x => x.Length); > Map(x => x.Start); > References(x => x.RecordAccessor) > .Column("RecordAccessorID") > .Cascade.All(); > References(x => x.ColorMap) > .Column("ColorMapID"); > } > } > > public class ConstantColorSourceMapping : > FluentNHibernate.Mapping.SubclassMap<ConstantColorSource> > { > public ConstantColorSourceMapping() > { > KeyColumn("ID"); > Map(x => x.Alpha); > Map(x => x.Blue); > Map(x => x.Green); > Map(x => x.Red); > } > } > > public class ColorSourceMapping : ClassMap<ColorSource> > { > public ColorSourceMapping() > { > Table("ColorSource"); > Id(typeof(Guid), "ID"); > } > } > > The mapping file generated by the 3 classes above looks like this... > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > default-access="property" auto-import="true" default-cascade="none" > default-lazy="true"> > <class xmlns="urn:nhibernate-mapping-2.2" > name="GBS.VersiLabel.Core.Domain.Model.ColorSource, GBS.VersiLabel.Core, > Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="ColorSource"> > <id type="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, > PublicKeyToken=b77a5c561934e089"> > <column name="ID" /> > <generator class="guid.comb" /> > </id> > <joined-subclass > name="GBS.VersiLabel.Core.Domain.Model.ConstantColorSource, > GBS.VersiLabel.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" > table="`ConstantColorSource`"> > <key> > <column name="ID" /> > </key> > <property name="Alpha" type="System.Int32, mscorlib, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"> > <column name="Alpha" /> > </property> > <property name="Blue" type="System.Int32, mscorlib, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"> > <column name="Blue" /> > </property> > <property name="Green" type="System.Int32, mscorlib, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"> > <column name="Green" /> > </property> > <property name="Red" type="System.Int32, mscorlib, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"> > <column name="Red" /> > </property> > </joined-subclass> > </class> > </hibernate-mapping> > > You'll notice that the mapping has the ConstantColorSource but not > SubstringColorSource. > > I checked the wiki but it didn't seem to address the specific issue of > multi-level inheritance. > > Am I doing something wrong? > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
