首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架SubmitChanges

实体框架SubmitChanges
EN

Stack Overflow用户
提问于 2012-05-21 06:38:16
回答 1查看 1.2K关注 0票数 0

在表A上插入新行的过程中,我在表A上使用触发器来更改表B上的列值。

由于目前的设计,我得到了RowVersion错误。所以我正在考虑在entity SubmitChanges上执行当前的触发器功能。我相信INotifyPropertyChanged在属性改变时被激发,在我的情况下会在表A属性改变时被激发,这不是我想要的。我想对表A执行行插入操作,以更新表B的值。

有谁知道处理它的更好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2012-05-21 16:01:16

您可以覆盖SaveChanges,将所有实体插入到表A中,并对表B中的实体执行更新。

代码语言:javascript
复制
public override int SaveChanges(SaveOptions options) 
{
    foreach(TableA a in ObjectStateManager.GetObjectStateEntries(EntityState.Added)
                                          .Where(e => !e.IsRelationship)
                                          .Select(e => e.Entity)
                                          .OfType<TableA>())
    {
        // Here you can get your TableB entity and do an update
        // If you don't have those entities already loaded you will load
        // them one by one so it will probably need some additional 
        // adjustments for better performance
    }

    return base.SaveChanges(options);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10677814

复制
相关文章

相似问题

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