ChangeTracker не показывает изменения свойств навигации в Entity Framework

У меня есть структура ниже в рамках Entity

[Table("Person")]
public class Person
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public long Id{get  ;set;}
    public string Name{get;set;}
    public long DId { get; set; } // this is id from Department Table

    [ForeignKey("DId")]
    public Department SudentDepartment{get;set;}
}
[Table("Department")]
public class Department
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public long Id{get  ;set;}
    public string Name { get; set; }
}

Теперь я переопределяю метод SaveChanges для аудита изменений в таблице аудита на уровне полей. Я не могу получить старое и новое значение Department в ChangeTracker, так как это свойство навигации. Это необходимо, потому что в таблице Audit мне нужно сохранить Departname вместо Id.

Есть ли способ получить свойство навигации в ChangeTracker?

1 ответ

Единственное, что я имею в виду, это то, что вы можете попытаться использовать код, подобный коду из библиотеки Audit.EntityFramework.

Проверить GetForeignKeysValues код здесь: https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/EntityKeyHelper.cs#L145

Другие вопросы по тегам