linq to sql抛出未找到或更改的异常行

时间:2009-09-30 20:58:36

标签: c# asp.net

您好我是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();
        }

1 个答案:

答案 0 :(得分:3)

这是一个并发冲突异常错误消息。

您可以通过将所有Entity属性的UpdateCheck属性设置为none来避免它。但这相当于你可能不想要的Last-In-Wins。

或者您可以在数据库上使用时间戳来检查此并发性,它将成为您对象的属性,并在更新期间用于查找记录(除主键之外)。如果未找到记录执行更新,则抛出ChangeConflictExcpetion。如果你在分离模式下工作,请记住将它存储在某个地方,就像在ASP.NET中一样。

你需要花一些时间来理解这个概念......

How to: Manage Change Conflicts (LINQ to SQL)