在一个表中使用EF更新记录,并在另一个表上检查并发



我需要在一个表中的记录上执行更新,但是是否允许此更新取决于另一个表中的记录值。我可以下载两个实体,检查它们,更改价值并保存。

到目前为止,一切都很好,但是我必须确保,在检查和保存"允许"记录之间不会改变。基本上,我需要诸如并发处理之类的东西,但不在更改的记录上。

实体框架案例。如果可能的话,我更喜欢不切换到程序或SQL。

我的场景。

var db = new MyDb();
var allowingRecord = db.AllowingRecords.First();
if(allowingRecord.Allow) // allows to make changes in RecordsToChange
{
    var recordToChange = db.RecordsToChange.First();
    recordToChange.FieldToChange = "Changing";
}
// Somwhere right here allowingRecord.Allow changes to false, but entity is not updated
db.SaveChanges();

您可能需要为此目的检查纪念品设计模式。它基本上存储了您的状态,您可以始终将其与该模式一起使用例如,您可以检查此链接,它还具有代码示例;http://www.dofactory.com/net/memento-design-pattern

最新更新