I'll the post the full project (it's probably bigger than Google's
limit) on my blog tonight then update this thread with a link.


On Mar 6, 3:07 pm, James Gregory <jagregory....@gmail.com> wrote:
> Thanks for the info, this one has been a bit of a weird issue for a while
> now. If you want to try sending me the example (to this address) then I'll
> be grateful, but I can probably knock one together from what you've said.
>
>
>
> On Fri, Mar 6, 2009 at 7:42 PM, Roger Heim <roger.h...@gmail.com> wrote:
>
> > Thanks for the info James. Removing the discriminator as an actual
> > property helped but now I've run into issue #95 (where the
> > discriminator and the version tag are in the wrong sequence.) I tried
> > three times to attach an example to the issue that replicates the
> > problem but each time Google barfed. Briefly, it's dependent on the
> > order of the DiscriminateSubClassesOnColumn() and Version() in the
> > ClassMap file. If the sequence is DiscriminateSubClassesOnColumn()
> > followed by Version(), Fluently.Configure() succeeds but a generated
> > hbm.xml file is invalid. If the sequence is Version() followed by
> > DiscriminateSubClassesOnColumn(), Fluently.Configure() failes but a
> > generated hbm.xml file is correct.
>
> > I'm sorry I don't know enough about the FNH source to offer a patch.
>
> > On Mar 6, 3:44 am, James Gregory <jagregory....@gmail.com> wrote:
> > > You don't normally have the discriminator as an actual property in your
> > > entity too, it's usually just a column. That's not to say it's incorrect,
> > > just something I've not seen before. Perhaps try it without.
>
> > > On Fri, Mar 6, 2009 at 2:21 AM, Roger Heim <roger.h...@gmail.com> wrote:
>
> > > > Hi All,
>
> > > > I've just started using FNH and NHibernate. Between FNH and Steve
> > > > Bohlen's Summer of NHibernate videos I think I'm starting to get my
> > > > brain wrapped around this stuff but I have a question about using
> > > > discriminators and sub-classes.
>
> > > > I have an entity that implements a General Ledger account. The account
> > > > can be one of 5 types: Asset, Liability, Equity, Income or Expense and
> > > > is represented by an Int32 that has the value 1-5. I created a
> > > > GLAccount class that contains all the properties. The class looks like
> > > > this:
> > > >  public class GLAccount
> > > >  {
> > > >    public virtual Guid AccountID { get; private set;}
> > > >    public virtual decimal AccountNumber {get; set;}
> > > >    public virtual string Description {get;set;}
> > > >    public virtual int AccountType {get;set;}
> > > >    public virtual int Version {get; private set;}
> > > >  }
>
> > > > I also created five classes for the different account types:
> > > > GLAssetAccount, GLLiabilityAccount, GLEquityAccount, GLIncomeAccount
> > > > and GLExpenseAccount. They are all subclasses of GLAccount but they
> > > > have no additional properties. Here's the discriminator portion of the
> > > > mapping class:
> > > >  DiscriminatorSubClassesOnColumn<int>("AccountType"), -1)
> > > >    .SubClass<GLAssetAccount>(1), m=>m.Map
> > > > (x=>x.AccountType).Not.Nullable())
> > > >    .SubClass<GLLiabilityAccount>(2), m=>m.Map
> > > > (x=>x.AccountType).Not.Nullable())
> > > >    .SubClass<GLEquityAccount>(3), m=>m.Map
> > > > (x=>x.AccountType).Not.Nullable())
> > > >    .SubClass<GLIncomeAccount>(4), m=>m.Map
> > > > (x=>x.AccountType).Not.Nullable())
> > > >    .SubClass<GLExpenseAccount>(5), m=>m.Map
> > > > (x=>x.AccountType).Not.Nullable());
>
> > > > In my unit test I try to add an instance of the GLAccount object and
> > > > it passes but it assigns -1 as the AccountType even if I specifically
> > > > set it; I assume that's because of the -1 in the
> > > > DiscriminatorSubClassesOnColumn line. But if I try to add an instance
> > > > of a GLAssetAccount object it fails and throws an
> > > > IndexOutOfRangeException: Invalid index 4 for this
> > > > SqlParameterCollection with Count=4 and I never get to see the
> > > > generated SQL.
>
> > > > Based on my objects is using Table-Per-Class-Hierarchy correct? Can
> > > > anyone tell me what I've done wrong?
>
> > > > Roger Heim- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to