假设你正在谈论的LINQ to SQL,您可以覆盖SubmitChanges
,因此基本上做任何你想要的......例如:
partial class YourDataContext
{
public override void SubmitChanges(ConflictMode failureMode) // don't worry, the parameterless version you know calls this one...
{
var changeSet = GetChangeSet();
foreach (object insert in changeSet.Inserts)
{
// set LastUpdate property
}
foreach (object update in changeSet.Updates)
{
// set LastUpdate property
}
base.SubmitChanges();
}
}
当然,评论说:“设置LASTUPDATE财产”是不是必然微不足道。你能做到这一点,我想出了在几秒钟的一种方法是创建具有LASTUPDATE属性的接口,然后能从中得到所有的LINQ对象:
public interface IHasLastUpdate
{
DateTime LastUpdate { get; set; }
}
partial class Order : IHasLastUpdate {}
partial class Product : IHasLastUpdate {}
// etc
然后,你可以替换注释行在上面的位与
(insert as IHasLastUpdate).LastUpdate = DateTime.Now;
来源
2011-08-08 16:13:10
Jon
你有什么好的参考资料可以在这里看到吗? – TheJediCowboy
您需要告诉我们您正在使用的DBMS。 –
http://sqlserver2000.databases.aspfaq.com/how-do-i-audit-changes-to-sql-server-data.html – Travis