C#LinqToSql即使设置了PK,SubmitChanges()也不会更新

时间:2015-12-26 14:36:30

标签: c# linq

我有以下代码:

public int DeActivate(User entity) {
            try {
                using (UsersDataContext usersDC = new UsersDataContext()) {
                    users user = new users();
                    user = usersDC.users.Where(x => x.id == entity.Id).
                        Select(x => new users {active = x.active}).FirstOrDefault();
                    //user.active = entity.Active;
                    user.active = false;
                    usersDC.SubmitChanges();
                    return 1;
                    }
                }
            catch {
                return 0;
                }
        }

在对方法运行NUnit测试时,该方法返回1,正如它应该做的那样,并且在调试时不会抛出任何异常。但是,当我与DB交叉检查时,记录没有受到影响。我尝试了以下内容:重新创建DBML文件,检查是否存在PK,并检查以下网站: MSDN questionStackOverflow question,但无济于事。

1 个答案:

答案 0 :(得分:2)

您的select语句错误。试试这个。

public int DeActivate(User entity) {
   try {
     using (UsersDataContext usersDC = new UsersDataContext()) {
       var user = usersDC.users.Single(x => x.id == entity.Id);
       user.active = false;
       usersDC.SubmitChanges();
       return 1;
     }
    } catch {
      return 0;
    }
   }