【问题标题】:ChangeTracker doesn't show navigation property changes in Entity FrameworkChangeTracker 不显示实体框架中的导航属性更改
【发布时间】:2017-05-21 12:52:41
【问题描述】:

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

[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 中获取导航属性?

【问题讨论】:

  • 有没有人提出这个问题?
  • 有没有人指点一下?
  • 你有想过吗?

标签: entity-framework audit navigation-properties tracker


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多