C# 检查实体框架6中导航属性的原始值
在我的应用程序中,DbContext是持久化的,在保存之前,我想检查用户所做的更改并记录这些更改。这可能不是审计跟踪应用程序的最优雅或最有效的方法,但我在这方面已经走了很长的路 对于普通属性,我可以使用C# 检查实体框架6中导航属性的原始值,c#,entity-framework-6,C#,Entity Framework 6,在我的应用程序中,DbContext是持久化的,在保存之前,我想检查用户所做的更改并记录这些更改。这可能不是审计跟踪应用程序的最优雅或最有效的方法,但我在这方面已经走了很长的路 对于普通属性,我可以使用db.Entry(item).originalvalue。对于导航属性,如果导航属性已经加载并且我不想覆盖用户设置的值,我如何检查原始导航属性,是否必须将外键实现为int属性?或者是否有某种方法可以从现有上下文中获取属性或其键 公共类用户 { 公共字符串名称{get;set;} 公共日期时间出生日
db.Entry(item).originalvalue
。对于导航属性,如果导航属性已经加载并且我不想覆盖用户设置的值,我如何检查原始导航属性,是否必须将外键实现为int
属性?或者是否有某种方法可以从现有上下文中获取属性或其键
公共类用户
{
公共字符串名称{get;set;}
公共日期时间出生日期{get;set;}
}
公开课工作
{
公共字符串说明{get;set;}
公共用户Asignee{get;set;}
}
在上述代码中,已使用EF从数据库检索作业,并且已加载
Asignee
关系属性。然后操作员将Asignee
更改为不同的用户
。如何检查导航属性以前导航到的实体(如果有)?最好在代码中显示一个示例。谢谢提示。我对问题进行了编辑,使其更加明确。将UserID属性添加到作业
,以便您可以将其作为原始值进行跟踪。但是,当我更改用户
属性或在作业
中时,框架是否会自动修改UserID
?