获取实体框架更新后的已修改对象列表

时间:2013-02-18 14:10:39

标签: sql-server entity-framework

所以我试图阻止应用程序之间的竞争条件。

使用IsolationLevel / TransactionScope,我可以按照我需要的方式锁定表,但需要先运行更新操作,然后对修改后的对象列表进行操作。

为此,我需要运行更新并一次性获取更新ID的列表。

如果我首先尝试获取ID,那么就不会锁定表,而另一个应用实例可能会在标记之前查询相同的列表。

有没有办法做类似的事情:

//modify some objects    
var updatedIds = context.SaveChanges();
//Process updatedIds

有办法做到这一点吗?我已经尝试查看ObjectContext条目,但在Save之后似乎没有任何东西。

也许我不得不做一个特色菜?

1 个答案:

答案 0 :(得分:0)

此代码可以进入您的Context类,并且应该为您提供所需的内容

public override int SaveChanges()
{
    using (var scope = new System.Transactions.TransactionScope())
    {
        //pre processing
        var result = base.SaveChanges();
        //post processing
        scope.Complete();
        return result;
    }
}