我需要对一个表中的记录执行更新,但是否允许此更新取决于另一个表中记录的值。我可以下载两个实体,检查它们,更改值并保存。
到目前为止,这么好,但我必须确保在检查和保存我的"允许"之间。记录不会发生变化。基本上我需要像并发处理这样的东西,但不需要更改记录。
实体框架案例。我希望尽可能不切换到过程或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();
)
答案 0 :(得分:0)
您可能需要为此目的检查Memento设计模式。它基本上存储你的状态,你可以随时使用它 例如,您可以检查此链接,它也有代码示例; http://www.dofactory.com/net/memento-design-pattern