Hi, We use a DTO pattern in our application to send information to several clients applications from our central business logic server which uses NHibernate for ORM. We are trying to implement optimistic concurrency control using the version property. The version is generated by the database (SQL Server Timestamp column).
Here is the sequence of actions Client 1 requests data Session 1: a. Load business object (RowVersion 1) b. Copy business object properties to DTO along with row version Session 1 closed Client 2 updates data of the same business object (RowVersion 2) Client 1 submits updated data Session 2: a. Load business object (RowVersion 2) b. Update business object properties from DTO along with row version (RowVersion 1) c. Save business object and commit transaction Session 2 closed In session 2, when the update statement is generated (call to public void NullSafeSet(System.Data.IDbCommand cmd, object value, int index) in our custom timestamp column), the "value" param is taken from the business object loaded in the session, rather than the value updated from the DTO. I have read forum posts saying that the RowVersion should not be touched, but we cannot avoid this in a DTO pattern. Is there any way to work around this? We are 2 years into the development and cannot remove the DTO pattern. I am sure this is not a new problem and would really appreciate any help. Thanks!! -- 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.
