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 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---