my suggestion was to map the field - then the field gets a null but the public property returns the "NULL object". same goes for the set of the public property - if it got the "Null object" it puts actual null in the field
On Thu, May 13, 2010 at 2:03 PM, John Davidson <[email protected]> wrote: > You can create a base class for all your mapped objects with a must inherit > requirement. That allows you to create a single implementation and then > reuse it (DRY). > > John Davidson > > > On Thu, May 13, 2010 at 3:25 AM, Dathan <[email protected]> wrote: > >> 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]> >> <nhusers%[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]<nhusers%[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]<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]<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.
