使用EF在一个表中更新记录,并在另一个表

时间:2017-12-21 10:54:52

标签: entity-framework

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

到目前为止,这么好,但我必须确保在检查和保存我的"允许"之间。记录不会发生变化。基本上我需要像并发处理这样的东西,但不需要更改记录。

实体框架案例。我希望尽可能不切换到过程或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();

1 个答案:

答案 0 :(得分:0)

您可能需要为此目的检查Memento设计模式。它基本上存储你的状态,你可以随时使用它 例如,您可以检查此链接,它也有代码示例; http://www.dofactory.com/net/memento-design-pattern