NHibernate Web Application - Managing User Preferences

230 views Asked by At

I've got a web application with an NHibernate Data Access Layer. I have a large number of user preferences that can be stored, these are mainly booleans for example registering that a dialog has been dismissed and should not be showed again.

The problem is that with NHibernate I need to add to my database schema, and add a property to the persistent class every time a new dialog is added to register if it has been dismissed or not.

There must be an easier way. What is it?

2

There are 2 answers

0
Rippo On BEST ANSWER

Another option is to read this post by Ayende, basically allowing for dynamic fields

A common theme in many application is the need to support custom / dynamic fields. In other words, the system admin may decide that the Customer needs to have a few additional fields that aren’t part of the mainline development.

Also read Ayende's last comment

  • You can put a collection in a dynamic property.
  • You can edit the configuration programatically

Edit For some reason I have just realised that I have answered this question that is over one year old! Got no idea how I got here! Answer is still a good one though

0
Marijn Deé On

You could use a settings table to store the preferences and add a value for every dialog:

Table Settings Id, UserId, DialogName, Value

1, 1, FirstDialog, True

2, 1, SecondDialog, False

3, 2, FirstDialog, False

4, 2, SecondDialog, False