We have a concurrency time stamp field on each of out tables that updated via a trigger after each insert or update. The stored procedures that handle the inserts and updates for each table must be passed the concurrency time stamp for each row updated. If the parameter does not match the concurrency stamp on the record, the stored procedure raises an error to indicate the record was not updated.
Since this field is updated via a trigger, after each insert or update we have to get the new concurrency stamp for the record that was just committed.
I will look into the predicate factory, but do you think this can be acheived