This shouldn't be necessary, but try explicitly casting your enum to an int.
mapping.DiscriminateSubClassesOnColumn<UserRole>("Role",
(int)UserRole.Teacher)On Thu, Jul 16, 2009 at 4:31 PM, Corey Coogan <[email protected]> wrote: > > I've searched everywhere and can't find an example that fits this. I > really could use some help I keep getting the error: > > "Could not format discriminator value to SQL string of entity..." > > > I have a User class with an enum property, UserRole, that I want to be > my discriminator. > > public abstract class User > { > public string Name; > public virtual UserRole Role { get; protected set; } > } > > I then have a subclass for each role: > > public class Teacher : User > { > public Teacher() > { > Role = UserRole.Teacher; > } > > } > > I don't have any property on Teacher referring to Role because I don't > need it. This is different from what I've seen in other examples. > Here's how I tried to map it on my User mapping: > > mapping.DiscriminateSubClassesOnColumn<UserRole>("Role", > UserRole.Teacher) > .SubClass<Teacher>(t => > { > t.Map(x => x.Role); > } > ); > > Here's my mapping output: > > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default- > access=""> > <class name="S2sol.Rpo.Core.Domain.User.User, S2sol.Rpo.Core, > Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Users" > xmlns="urn:nhibernate-mapping-2.2" discriminator-value="Teacher"> > <id name="Id" type="Int32" unsaved-value="0" column="Id"> > <generator class="identity" /> > </id> > <discriminator column="Role" > type="S2sol.Rpo.Core.Domain.User.UserRole, S2sol.Rpo.Core, > Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> > <property name="Email" type="String" unique- > key="IX_Unique_EmailAddress"> > <column name="Email" /> > </property> > <property name="Role" > type="FluentNHibernate.Mapping.GenericEnumMapper`1 > [[S2sol.Rpo.Core.Domain.User.UserRole, S2sol.Rpo.Core, > Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], > FluentNHibernate, Version=0.1.0.0, Culture=neutral, > PublicKeyToken=8aa435e3cb308880"> > <column name="Role" /> > </property> > > > > <property name="Name" type="String"> > <column name="Name" /> > </property> > > > <subclass name="S2sol.Rpo.Core.Domain.User.Teacher, > S2sol.Rpo.Core, Version=1.0.0.0, Culture=neutral, > PublicKeyToken=null"> > <property name="Role" type="S2sol.Rpo.Core.Domain.User.UserRole, > S2sol.Rpo.Core, Version=1.0.0.0, Culture=neutral, > PublicKeyToken=null"> > <column name="Role" /> > </property> > </subclass> > </class> > </hibernate-mapping> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
