目前我正在尋找一種方法來查找[context] .SubmitChanges()中實體的舊值。Linq to SQL - 審計跟蹤(在SubmitChanges中查找舊值)
據我所知只有新值出現。 我是否真的需要對數據庫執行查詢以獲取實體的舊值?
該解決方案通過GertArnold:
public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode)
{
// Get the changeset
ChangeSet changeSet = this.GetChangeSet();
// Put the updated objects into a IEnumerable
IEnumerable<object> updatedEntities = changeSet.Updates;
foreach (var entity in updatedEntities.Where(entity => AuditTypes.Contains(entity.GetType())))
{
var old = this.GetTable(entity.GetType()).GetModifiedMembers(entity);
// Do something with the old values
}
// Save the changes
base.SubmitChanges(failureMode);
}
[Linq to SQL:獲取已更改行的舊值]的可能重複(http://stackoverflow.com/questions/1852533/linq-to-sql-getting-old-values-of-changed-rows) – 2012-02-06 09:46:21
@WouterdeKort我確實看到帖子,但沒有說明如何獲取緩存。另外,當我查看我的SubmitChanges時,即使沒有調用刷新,我也會看到新的值。 – Julian 2012-02-06 10:06:40