0
我有一個進程,每次添加實體時都需要新添加的實體的主鍵ID。我已覆蓋的SaveChanges()
方法,並查看了ChangeTracker
,但我沒有看到任何動態方式來檢索新添加的實體。有沒有一個好的方法來做到這一點?在SaveChanges後獲取新增實體?
我有一個進程,每次添加實體時都需要新添加的實體的主鍵ID。我已覆蓋的SaveChanges()
方法,並查看了ChangeTracker
,但我沒有看到任何動態方式來檢索新添加的實體。有沒有一個好的方法來做到這一點?在SaveChanges後獲取新增實體?
向更改跟蹤器查詢新實體。
public override int SaveChanges()
{
var newEntities = ChangeTracker.Entries()
.Where(entry => entry.State == EntityState.Added)
.Select(entry => entry.Entity).ToList();
var count = base.SaveChanges();
// do something with newEntities
return count;
}
在實際保存之前,您可以重寫SaveChanges並收集處於Added狀態的任何實體,但這就是AFAIK。
不幸的是,實體此時沒有主鍵值。 – grefly 2011-12-27 21:50:13
不知道我明白。正如你在Eranga的例子中看到的那樣,你存儲了被添加的實體,然後在保存後做一些事情。如果它們被數據庫分配了主鍵值,則相同的實體將被更新並且您將擁有這些鍵。 – Ocelot20 2011-12-28 14:43:52
謝謝,你說得對。 – grefly 2011-12-29 15:33:48