日期:2014-05-20  浏览次数:20792 次

可能是并发引起的错误 Row not found or changed,怎样处理
本帖最后由 hcf_force 于 2012-11-19 14:39:49 编辑
  public bool DelCategory(int id)
        {
            bool ret = false;
            try
            {               
                List<int> list = new List<int>();
                if (!list.Contains(id))
                {
                    list.Add(id);
                }
                list = GetKey(id, list);              

                    var x = from s in dbLinq.MaterialAttributes where list.Contains(s.ID) select s ;
                    foreach (var n in x )
                    {
                        dbLinq.MaterialAttributes.DeleteOnSubmit(n);
                        try
                        {
                            dbLinq.SubmitChanges();
                        }
                        catch (System.Data.Linq.ChangeConflictException)
                        {
                          foreach (System.Data.Linq.ObjectChangeConflict occ in dbLinq.ChangeConflicts)
                        {

                        //以下是解决冲突的三种方法,选一种即可

                        // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值
                       // occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues);