Thanks James!

On Mon, Aug 24, 2009 at 6:40 AM, James Gregory <[email protected]>wrote:

> Just committed a fix for this. You should just be able to update to the
> latest binaries from the site.
>
>
> On Thu, Aug 20, 2009 at 1:43 PM, Everett Muniz <[email protected]>wrote:
>
>> :-) thanks James
>>
>>
>> On Thu, Aug 20, 2009 at 8:20 AM, James Gregory 
>> <[email protected]>wrote:
>>
>>> I think we can probably get a change in. Might have to be a bit more
>>> clever than just looking at Type.BaseType though :)
>>>
>>>
>>> On Thu, Aug 20, 2009 at 1:07 PM, Everett Muniz 
>>> <[email protected]>wrote:
>>>
>>>> Thanks for the feedback James.  I figured the issue was was the
>>>> inheritance layers I just wasn't sure whether it was by design or not.  Is
>>>> the best course to stick with the old-style deprecated approach or do you
>>>> think a change is likely?  I'd be willing to try to code the change if that
>>>> would be any help.
>>>>
>>>>
>>>> On Thu, Aug 20, 2009 at 3:38 AM, James Gregory <[email protected]
>>>> > wrote:
>>>>
>>>>> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to