我嘗試使用EF中的ChangeTracker
來執行審計並保存數據庫中的所有更改(add + update)。使用ObjectContext獲取關係記錄的主鍵
因此與ChangeTracker
我將能夠獲得所有更改的表和每個值的所有值。但是我還需要新表格中新記錄的ID。
其中有些是關係,當我嘗試EntityKey
得到的值,主鍵是0
private object GetPrimaryKeyValue(DbEntityEntry entry)
{
var objectStateEntry = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity);
return objectStateEntry.EntityKey.EntityKeyValues[0].Value;
}
有人知道,如果我在錯誤的方式,如果有可能得到相關實體的主鍵?
謝謝!
我認爲你需要檢查你的數據庫表。如果它是主鍵,則它不能爲空(請參閱http://stackoverflow.com/questions/3876785/sql-server-cant-insert-null-into-primary-key-field)。 – Roger
實際上,我說錯了,它不是null,而是0.主鍵是表中的自動增量字段。 –