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:
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:
Which would result in:
Pretty easy, even if I say so myself.