Entity Framework Change Tracking API и справочные записи

Требуется написать общий код аудита для моего подкласса DbContext.

foreach (var entry in this.ChangeTracker.Entries<MyClass>())
{
    if (entry.State == EntityState.Modified)
    {
        var entityProperties = entry.Entity.GetType().GetProperties();
        foreach (var entityProperty in entityProperties)
        {
            DbMemberEntry propertyEntry = entry.Member(property.Name);
            if (propertyEntry is DbPropertyEntry)
            {
                // IsModified available
            }
            else if (propertyEntry is DbReferenceEntry)
            {
                // IsModified not available
            }
        }
    }
}

1) Если я изменю только ссылочное свойство, значение entry.State будет «Без изменений».

2) Даже если для точки 1 задано значение «Изменено», у класса DbReferenceEntry, похоже, нет ни свойства IsModified, ни исходного значения.

Я предполагаю, что это возможно, потому что EF должен быть отслеживая это.

Кто-нибудь может помочь?

Спасибо, Бен

7
задан Ladislav Mrnka 17 March 2011 в 08:42
поделиться