我们有一个客户端应用程序,其中有十多个用户可以同时执行相同的操作,例如填写表单,当两个用户同时提交具有不同数据的相同表单时会出现问题。两个数据都是由用户点击了一个毫秒之后保存的用户我已经将用户ID放在会话中,我也尝试将userid放在user.identy.name和cookies中,但结果是一样请帮助我! :)
代码:
GetCustomerDetails()
{
Customer_Details custDetails = new Customer_Details();
custDetails.Name = txtName.Text.Trim();
return custDetails;
}
GetEntrepreneurshipDetails()
{
Entrepreneurship entre = new Entrepreneurship();
...
entre.AdvId = Guid.Parse(Session["userId"].ToString());
return entre;
}
btnSubmit_Click
{
var custDetails = GetCustomerDetails();
var = GetEntrepreneurshipDetails ();
_advisorService.InsertEntreprenuershipDetails(custDetails, entreprenuershipDetails);
}
答案 0 :(得分:0)
您需要实施某种版本控制检查。
我通常会在表格上创建一个timestamp
字段(日期时间),每次将数据保存在记录中时,RDBMS会自动更新该字段。
因此,当用户来编辑记录时,我会读取该值并保留它。当用户在隔离事务中确认操作时,我将先前读取的时间戳值与当前读取时间戳值进行比较