Я пытаюсь использовать ChangeTracker
из EF, чтобы выполнить аудит и сохранить все изменения в базе данных (добавить + обновление).Получить первичный ключ записи отношений с ObjectContext
С ChangeTracker
Я смогу получить все измененные таблицы и все значения для каждого. Но мне также нужен идентификатор новых записей в новых таблицах.
Некоторые из них являются отношениями, и когда я пытаюсь получить значение с 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
На самом деле я сказал что-то не так, это не пусто, но 0. Первичный ключ - это автоинкрементное поле в таблице. –