我在Entity framework中有以下结构
[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方法以在字段级别审核审计表中的更改。我无法在ChangeTracker中获得Department的旧值和新值,因为它是导航属性。这是必需的,因为在Audit表中我需要保存Departname而不是Id。
有什么办法可以在ChangeTracker中获取导航属性吗?
答案 0 :(得分:0)
我只有输入是你可以尝试使用类似于Audit.EntityFramework库上的代码。
在此处查看GetForeignKeysValues
代码:
https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/EntityKeyHelper.cs#L145