我有一个ASP.NET-MVC应用程序:
通常情况下,远程服务器向我的应用程序发送另一个Web请求到控制器操作,该操作将更新先前的传输并设置aknowledge字段。
我的问题是,远程Web服务器有时非常快,并且在数据库中传输插入之前发送的aknowledge状态,因此更新失败。我怎么能阻止这个?
感谢。
答案 0 :(得分:4)
只需分两个阶段进行提交操作即可。首先是创造记录。然后像创建邮件等处理。第二,做出真正的(逻辑)提交。
using(var db = new Db(){
db.Insert(
} // This will commit first stage
// Send email do other stuff
using(var db = new Db(){
var t = db.getTransmission()
r.Commited = true;
db.Save();
} // This will logically commit
答案 1 :(得分:0)
您是否可以更新数据库,提交并标记为无效或无效,然后在收到确认状态后取走此标记?
我可能会误解你正在做什么。