Diego et al,

is there a way to make this work for table-per-class-hierarchy
strategy and how? Is WHERE clause in the mapping mandatory and if so,
is there a known workaround for FNH (I'm using automappings which save
me a lot of time).

Again: it works for saving, but does not work for loading entities.

Thanks,
  Miha.

On Aug 16, 3:58 pm, Miha V <[email protected]> wrote:
> BTW, I _had_ to change the OO model in order for this to work.
>
> I introduced a Rate abstract base class and use derived classes
> HourlyRate and NightlyRate for that.
>
>     public abstract class Rate
>     {
>         public virtual int Id { get; set; }
>         public virtual DateTime ValidFrom { get; set; }
>         public virtual DateTime ValidTo { get; set; }
>         public virtual decimal Amount { get; set; }
>     }
>
>     public class HourlyRate : Rate {}
>     public class NightlyRate : Rate { }
>
> And Employee has:
>     public class Employee
>     {
>         public virtual int Id { get; set; }
>         public virtual string Name { get; set; }
>         private ISet<HourlyRate> _regularRates = new
> HashedSet<HourlyRate>();
>         public virtual ISet<HourlyRate> RegularRates
>         {
>             get { return _regularRates; }
>             set { _regularRates = value; }
>         }
>
>         private ISet<NightlyRate> _nightlyRates = new
> HashedSet<NightlyRate>();
>         public virtual ISet<NightlyRate> NightlyRates
>         {
>             get { return _nightlyRates; }
>             set { _nightlyRates = value; }
>         }
>     }
>
> And the mapping for an Employee:
> <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" mutable="true"
> name="NHibernatCollections.Models.Employee, NHibernatCollections,
> Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
> table="`Employee`">
>     <id name="Id" type="System.Int32, mscorlib, Version=2.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089">
>       <column name="Id" />
>       <generator class="hilo">
>         <param name="max_lo">100</param>
>       </generator>
>     </id>
>     <property name="Name" type="System.String, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
>       <column name="Name" length="250" />
>     </property>
>     <set cascade="all" name="RegularRates" mutable="true">
>       <key>
>         <column name="Employee_id" />
>       </key>
>       <one-to-many class="NHibernatCollections.Models.HourlyRate,
> NHibernatCollections, Version=1.0.0.0, Culture=neutral,
> PublicKeyToken=null" />
>     </set>
>     <set cascade="all" name="NightlyRates" mutable="true">
>       <key>
>         <column name="Employee_id" />
>       </key>
>       <one-to-many class="NHibernatCollections.Models.NightlyRate,
> NHibernatCollections, Version=1.0.0.0, Culture=neutral,
> PublicKeyToken=null" />
>     </set>
>   </class>
> </hibernate-mapping>
>
> On Aug 16, 3:52 pm, Miha V <[email protected]> wrote:
>
> > @Thiago - I'm using FNH to generate the mappings, and Override with
> > Where does not seem to go into the mapping file itself.
>
> > @Diego, mapping file for Rate is:

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en.

Reply via email to