首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架变更跟踪API和引用条目

实体框架变更跟踪API和引用条目
EN

Stack Overflow用户
提问于 2011-03-17 05:22:09
回答 1查看 3.5K关注 0票数 7

希望在我的DbContext子类上编写通用审计代码。

代码语言:javascript
复制
foreach (var entry in this.ChangeTracker.Entries<MyClass>())
{
    if (entry.State == EntityState.Modified)
    {
        var entityProperties = entry.Entity.GetType().GetProperties();
        foreach (var entityProperty in entityProperties)
        {
            DbMemberEntry propertyEntry = entry.Member(property.Name);
            if (propertyEntry is DbPropertyEntry)
            {
                // IsModified available
            }
            else if (propertyEntry is DbReferenceEntry)
            {
                // IsModified not available
            }
        }
    }
}

1)如果我只更改了一个引用属性,则entry.State的值是“未改变的”。

2)即使第1点被设置为"Modified",DbReferenceEntry类似乎也没有IsModified属性,也没有原始值。

我认为这是可能的,因为EF肯定在跟踪这一点。

有人能帮上忙吗?

谢谢,本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-17 17:03:08

是,引用条目(导航属性)不跟踪更改。它是外键属性的责任(如果是外键关联),或者是跟踪独立关联的变化的单独对象。在ObjectContext应用程序接口中,你可以通过ObjectStateManager获取这些对象,但是看起来DbContext应用程序接口没有这个功能。我在MSDN Forum上问了一个关于这个的问题。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5331936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档