实体框架审计

时间:2014-09-10 11:00:32

标签: entity-framework auditing

我正在尝试将审核添加到我的应用程序中。我遇到的问题是我无法从非原始类型中获取一些旧的和新的值。例如,如果我有一个实体Person,我可以轻松获得姓名,年龄,但我无法获得该国家的任何财产:

public class Person
{
    public string Name { get; set;}
    public int Age { get; set; }
    public Country { get;set;}
}

和国家可能看起来像:

public class Country
{
    public int Id { get;set;}
    public string Name { get;set;}
}

目前返回new / old值的代码看起来像(dbEntry是DbEntityEntry):

foreach (var prop in dbEntry.CurrentValues.PropertyNames)
{
    string oldValue = dbEntry.OriginalValues.GetValue<object>(prop) == null ? null : dbEntry.OriginalValues.GetValue<object>(prop).ToString();
    string newValue = dbEntry.CurrentValues.GetValue<object>(prop) == null ? null : dbEntry.CurrentValues.GetValue<object>(prop).ToString();
}

如何获取与国家/地区相关的信息(在这种情况下我想要国家/地区名称)?

1 个答案:

答案 0 :(得分:0)

您是否尝试过现有的解决方案?

https://www.nuget.org/packages/TrackerEnabledDbContext