All of our database tables have UpdateUserID and UpdateTS. I'd like to have this set if my entity has changes. Is there a way I can have this update on the spot conditionally? If I manually set UpdateTS in code, then it will say that my entity has changed and will always update the object.
+1
A:
I call this extension method before calling context.SaveChanges()
:
public static void SetLastModified(this ObjectContext context, DateTime dateTime)
{
DateTime now = DateTime.UtcNow;
foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified))
{
if (!entry.IsRelationship)
{
IHasLastModified lastModified = entry.Entity as IHasLastModified;
if (lastModified != null)
lastModified.LastModified = now;
}
}
}
I can easily call this code, because I've wrapper the ObjectContext in a repository class. If you're using it bare, you can hook up the ObjectContext.SavingChanges
event to do something similar.
Sander Rijken
2010-01-19 23:43:11
A:
You should be able to handle the SavingChanges event (example here) and perform logic as outlined by @sander
ongle
2010-01-20 01:46:15