您好我是sq的linq,我收到行未找到或更改的错误。
我在linq查询的帮助下更新我的表,然后有时显示此错误。 我无法弄清楚这个问题,因为有时它正在工作或者有时没有。
但我没有得到解决这个问题的永久解决方案。
twtmob_campainincomedetails_tb incomedetails = dataContext.twtmob_campainincomedetails_tbs.Single(twtincome => twtincome.incomeid == tempincomes);
decimal temppayout = decimal.Parse(lblpertweet.Text);
decimal temptotal = temppayout + tempmoneyearned;
incomedetails.moneyearned = Convert.ToString(temptotal);
incomedetails.tweet = temptweet + 1;
incomedetails.bonus = lblbonus.Text;
incomedetails.budurl = tempbudurl;
dataContext.SubmitChanges();
twtmob_user_tb twtuserdetails = dataContext.twtmob_user_tbs.Single(twtdetail => twtdetail.twtmobuserid == tempUserId);
{
float temppayout = float.Parse(lblpertweet.Text);
float tempoutstandingtotal = temppayout+tempoutstanding;
twtuserdetails.outstandingbalances = tempoutstandingtotal;
dataContext.SubmitChanges();
}
答案 0 :(得分:3)
这是一个并发冲突异常错误消息。
您可以通过将所有Entity属性的UpdateCheck属性设置为none来避免它。但这相当于你可能不想要的Last-In-Wins。
或者您可以在数据库上使用时间戳来检查此并发性,它将成为您对象的属性,并在更新期间用于查找记录(除主键之外)。如果未找到记录执行更新,则抛出ChangeConflictExcpetion。如果你在分离模式下工作,请记住将它存储在某个地方,就像在ASP.NET中一样。
你需要花一些时间来理解这个概念......