That seem like it addresses the problem - because NHibernate reads the value from the property when saving, if the internally-stored value is null, the property will return my "NULL" value, and NHibernate will attempt to serialize that to the DB, rather than the NULL value that I actually want to store.
It seems like a custom user type would fit the bill, because it supports NullSafeGet and NullSafeSet methods (sorry if I'm misstating the actual method names - the idea is right, though, right?). Using that, I could override Equals() on each of my classes, and the UserType for the class would do something like "if (! obj.Equals(ObjectClassType.Null)) return obj else return null;". Would that work? I'd prefer an approach that doesn't require me to implement a custom UserType per model class, though, so if there are any other options, I'm eager to hear them. Thanks! Dathan On May 7, 6:45 pm, nadav s <[email protected]> wrote: > use a field that will get the data, and a property that in its get method, > checks if the field is null and if so, returns the default > > > > On Sat, May 8, 2010 at 1:12 AM, Dathan <[email protected]> wrote: > > Hi, all. > > > I'm trying to strengthen my domain by eliminating null in favor of > > "Null" objects with explicit semantics. E.g., > > > class Category > > { > > private static Category @default; > > > static Category() > > { > > // init @default here > > } > > > public virtual int ID { get; set; } > > public virtual string Name { get; set; } > > public virtual Category Parent { get; set; } > > public static Category None { get { return @default; } } > > } > > > My categories support nesting (hence the Parent property), but top- > > level categories won't have parents. I'd like to represent this in my > > model by having the category's Parent set to Category.None. My > > question is, in terms of NHibernate, what's the best way to map this? > > Should I have a category record in my database called None with a null > > ParentID, and have all "top-level categories" store that ID as their > > parent? Or, should I serialize all references to Category.None as > > NULL categoryID's, and replace all NULL CategoryID's with > > Category.None upon retrieval? (If so, how?) What's the best practice > > here? > > > Thanks! > > > ~Dathan > > > -- > > 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 > athttp://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.
