Hmm.. That should work. In https://bitbucket.org/RogerKratz/nhibernate.envers/src/05468afddb55/Src/NHibernate.Envers.Tests/Integration/Data/EnumTest.cs "Enum1" is mapped to a dbstring and "Enum2" is mapped to an int. https://bitbucket.org/RogerKratz/nhibernate.envers/src/05468afddb55/Src/NHibernate.Envers.Tests/Integration/Data/Mapping.hbm.xml
Can you please isolate your problem in a small unit test (preferably using hbm-mapping) to verify Envers is the problem? If the problem still is there, report it to http://216.121.112.228/browse/NHE Thanks /Roger ________________________________________ Från: [email protected] [[email protected]] för Pete [[email protected]] Skickat: den 22 juni 2011 17:46 Till: nhusers Ämne: [nhusers] Re: NHibernate.Envers and Enum Mappings Hi Roger, This the the generated hbm: <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="NIHR.eSystematics.Core.Domain.ResearchProject, NIHR.eSystematics.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0b870c62165de31d" table="`ResearchProject`"> <id name="Id" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <column name="ResearchProjectId" /> <generator class="identity" /> </id> <bag cascade="all" name="Studies" mutable="true"> <key> <column name="ResearchProjectId" /> </key> <one-to-many class="NIHR.eSystematics.Core.Domain.Study, NIHR.eSystematics.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0b870c62165de31d" /> </bag> <property name="Title" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <column name="Title" not-null="true" /> </property> <property name="Method" type="FluentNHibernate.Mapping.GenericEnumMapper`1[[NIHR.eSystematics.Core.Domain.AssessmentMethod, NIHR.eSystematics.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0b870c62165de31d]], FluentNHibernate, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880"> <column name="Method" not-null="true" /> </property> <property name="Created" type="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <column name="Created" not-null="true" /> </property> <property name="CreatedBy" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <column name="CreatedBy" not-null="true" /> </property> </class> </hibernate-mapping> Many thanks for your assistance, Peter On Jun 22, 4:14 pm, Roger Kratz <[email protected]> wrote: > I don't know FH well so... > Can you please export your configuration to hbm format (something like > FluentMappings.ExportTo(...))? > > > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of > Pete > Sent: den 22 juni 2011 12:00 > To: nhusers > Subject: [nhusers] NHibernate.Envers and Enum Mappings > > Hi, > > I've just started a project which uses NHibernate, and we also have a need to > provide auditing of our entities - I came acrosss Envers, which seems to be a > perfect solution to our auditing requirement. > > I'm trying to map the following Enum with Fluent NHibernate: > > public enum AssessmentMethod > { > NotSet, > VanTulder, > ReviewPaper, > UserDefined, > } > > public ResearchProjectMap() > { > Id(x => x.Id) > .Column("ResearchProjectId") > .GeneratedBy.Identity(); > HasMany(x => x.Studies).Cascade.All(); > Map(x => x.Title).Not.Nullable(); > Map(x => x.Method).Not.Nullable(); //Assessment Method > Map(x => x.Created).Not.Nullable(); > Map(x => x.CreatedBy).Not.Nullable(); > } > > I'm allowing NHibernate to work out the type for AssessmentMethod, which > works fine for NHibernate to create the domain tables, however Envers seems > to be unable to determine the type for the creation of the audit tables with > the following error: > > Could not determine type for: enumstring - AssessmentMethod, > NHibernate.Envers, for columns: NHibernate.Mapping.Column(Method) > > I have managed to get it working by using: > > Map(x => x.Method).Not.Nullable().CustomType<AssessmentMethod>(); > > However, this stores the enum value as an int in the database, where I really > want it to be a string, so that Audit data is easier to read. > > I must stress that I am pretty new to NHibernate, so I may have made an > obvious mistake in the question being asked. > > Thank you in advance, > > Pete > > -- > 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 > athttp://groups.google.com/group/nhusers?hl=en.- Hide quoted text - > > - Show quoted text - -- 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. -- 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.
