NHibernate – Coarse Grained Locks
One of the challenges that DDD advocates face when using an OR/M is the usage of Coarse Grained Locks on Aggregate Roots, I’ll leave the discussion of you would want to do that to Fowler and Evans, but it seems that a lot of people run into a lot of problems with this.
It is actually not complicated at all, all you have to do is call:
session.Lock(person, LockMode.Force);
This will make NHibernate issue the following statement:
This allow us to update the version of the aggregate even if it wasn’t actually changed.
Of course, if you wanted a physical lock, you can do that as well:
session.Lock(person, LockMode.Upgrade);
Which would result in:
Pretty easy, even if I say so myself.

Comments
Comment preview