Do NOT try to manually get the list item in code and update a property on it because the optimistic locking mechanism in Share Point may throw an error later on when the operation associated with the event to which you are responding attempts to complete.
Additionally, the properties parameter may not be populated with information that you would tend to expect to be present.
The reason why item-updating event receiver fires twice in case of document libraries is because of check-in/checkout.
If so, indeed the best way to do it is to add a hidden bit column, or an int column if you want to cheaply store changed flags for several columns.
Test and set in the Item Updating, then read in the Item Updated.
Share Point reads these values from the event parameter and modifies the item accordingly when the actual operation runs (e.g.
the actual Add / Update operation for which the Adding / Updating event is being fired).Note: - The list I am attaching this to does NOT have version history turned on. So the question is: What is a good technique that can be implemented such that I can check whether a specific column in a list changed in the The blog post James's colleague wrote is wrong. Is there a reason why do you want to use the Item Updated receiver specifically? Do you absolutely need to do something Asynchronous? In Item Updating event, I want to do the processing, if value changes.