So doing the test, its definitely because I'm mapping an int to an enum. Now what should I do instead? Have an NHibernate mapped property that is int to int and have another property or method that I actually use to get and set the NHibernate property and do the enum to int type setting?
On Jan 21, 12:25 pm, José F. Romaniello <[email protected]> wrote: > Maybe you have a nullable column, with nullable values mapped to a not > nullable property in .net: > imagine you have an int column, with null values, mapped to a System.Int32: > in this case nhibernate will load the value as 0... and when checking if > the value has changed... 0 != null. .so it will update the value to 0. > > Another case is when you have wrong types suchs a wrong mapped enum. > The ghostbuster will tell you what is the column/property with problems. > > 2011/1/21 Scott <[email protected]> > > > > > Ahh, that helps a lot but one thing the blog post doesn't cover is how > > to fix them. > > One of my problems I noticed right away is that I am mapping an enum > > to an int what should I be doing instead? > > > On Jan 21, 11:41 am, José F. Romaniello <[email protected]> > > wrote: > > > I always send those two links and my head singshttp:// > >www.youtube.com/watch?v=iCHFVTQKqdQ > > > > 2011/1/21 José F. Romaniello <[email protected]> > > > > > it must be a ghost: > > > > >http://fabiomaulo.blogspot.com/2008/10/how-test-your-mappings-ghostbu. > > .. > > > > > < > >http://fabiomaulo.blogspot.com/2008/10/how-test-your-mappings-ghostbu...> > > > >http://jfromaniello.blogspot.com/2010/02/nhibernate-ghostbuster-versi. > > .. > > > > > 2011/1/21 Scott <[email protected]> > > > > > Using NHibernate 3 > > > >> One of my objects has been getting marked as being modified which sets > > > >> off a chain reaction to update a bunch of related objects and I have > > > >> no idea why. In all the objects that get modified, the only thing that > > > >> changes is their version number so it makes me think its something to > > > >> do with the sets. > > > > >> If I do just something simple like this: > > > > >> Rosmat rosmat = Session.Get<Rosmat>(id); > > > >> ITransaction tx = Session.BeginTransaction(); > > > >> tx.Commit(); > > > > >> Then the Rosmat object I got and a bunch of other related objects get > > > >> their version numbers updated. > > > > >> Here's my mapping: > > > > >> <class name="DatabaseModel.Models.Rosmat, DatabaseModel" > > > >> table="Rosmat" > > > > >> <cache usage="nonstrict-read-write" region="RosmatCache" /> > > > >> <id name="RefId" type="guid"> > > > >> <generator > > > >> class="DatabaseModel.Services.DataIntegrity.GuidExistingGenerator, > > > >> DatabaseModel" /> > > > >> </id> > > > >> <version name="Version" type="Int32" generated="never"> > > > >> <column name="Version" not-null="true" /> > > > >> </version> > > > >> <property name="Title" column="Title" type="string" > > > >> not-null="true"/> > > > >> <property name="AbbrevTitle" column="AbbrevTitle" type="string" > > > >> not- > > > >> null="false"/> > > > >> <property name="Expiration" column="Expiration" type="date" > > not- > > > >> null="false"/> > > > >> <property name="ImportCode" column="ImportCode" type="string" > > not- > > > >> null="false"/> > > > > >> <property name="MarkingRule" column="MarkingRule" type="int" > > not- > > > >> null="true"/> > > > > >> <property name="JsonStorageString" type="string" > > > > >> <column name="JsonStorage" sql-type="nvarchar(max)" > > not- > > > >> null="false" /> > > > >> </property> > > > > >> <many-to-one name="Owner" column="OwnerUserInfoRefId" > > > >> class="DatabaseModel.Models.UserInfo"/> > > > >> <many-to-one name="School" column="SchoolInfoRefId" > > > >> class="DatabaseModel.Models.SchoolInfo"/> > > > > >> <set name="StudentLists" order-by="title" lazy="true"> > > > >> <cache usage="nonstrict-read-write" > > region="RosmatCache" /> > > > >> <key column="RosmatRefId" /> > > > >> <one-to-many class="DatabaseModel.Models.StudentList" > > /> > > > >> </set> > > > > >> <set name="RosmatPermissions" lazy="true"> > > > >> <key column="RosmatRefId" /> > > > >> <one-to-many > > class="DatabaseModel.Models.RosmatPermission" > > > >> /> > > > >> </set> > > > > >> <set name="Specialties" table="RosmatSpecialty" lazy="true"> > > > >> <key column="RosmatRefId" /> > > > >> <many-to-many column="SpecialtyRefId" > > > >> class="DatabaseModel.Models.Specialty" /> > > > >> </set> > > > > >> <set name="SourceRosmats" table="SourceRosmat" lazy="true"> > > > >> <key column="RosmatRefId" /> > > > >> <many-to-many column="ParentRosmatRefId" > > > >> class="DatabaseModel.Models.Rosmat" /> > > > >> </set> > > > >> </class> > > > > >> -- > > > >> 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]<nhusers%[email protected] > > > >> > > > <nhusers%[email protected]<nhusers%252Bunsubscribe@googlegroup > > s.com>> > > > >> . > > > >> 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]<nhusers%[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.
