更改跟踪器不显示实体框架中的导航属性更改



>我在实体框架中有以下结构

[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 方法以在字段级别审核审核表中的更改。我无法在更改跟踪器中获取部门的新旧值,因为它是导航属性。这是必需的,因为在审核表中我需要保存 Departname 而不是 Id。

有什么方法可以在更改跟踪器中获取导航属性吗?

我唯一的输入是,您可以尝试使用类似于Audit.EntityFramework库的代码。

在此处检查GetForeignKeysValues代码:https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/EntityKeyHelper.cs#L145

相关内容

  • 没有找到相关文章

最新更新