Предположим, у нас есть Customers
и CustomerCategories
с отношением n-n DbContext/ObjectContext. Я также хочу сохранить статус отношений в таблице AuditLog
. Я могу достичь этого с помощью следующего кода в обычных случаях:
получение статуса отношений в ChangeTracker
с помощью следующего кода:
foreach (ObjectStateEntry dbEntry in){
objectContext
.ObjectStateManager
.GetObjectStateEntries(~EntityState.Detached)
.Where(o=>o.IsRelationship)
а затем найти ключи обоих связанных сущностей по следующим кодам:
(dbEntry.CurrentValues.GetValue(0) as EntityKey).EntityKeyValues[0].Value //for the key of related entity in customers table
(dbEntry.CurrentValues.GetValue(1) as EntityKey).EntityKeyValues[0].Value //for the key of related entity in CustomerCategories table
Все в порядке, если связанный Customer или связанные CustomerCategories добавлены недавно, что приводит к тому, что приведенный выше код возвращает значение null. Поэтому я не могу найти связанный объект.
Есть ли способ правильно найти связанную сущность?