代码之家  ›  专栏  ›  技术社区  ›  ctrlShiftBryan

LINQ未在.SubmitChanges()上更新

  •  21
  • ctrlShiftBryan  · 技术社区  · 18 年前

    这是我多次使用LINQ更新表中记录的逻辑:

     DataClasses1DataContext db = new DataClasses1DataContext();
     User updateUser = db.Users.Single(e => e.user == user);
     updateUser.InUse = !updateUser.InUse;
     db.Log = new System.IO.StreamWriter(@"c:\temp\linq.log") { AutoFlush = true };
     db.SubmitChanges();
    

    (updateUser.InUse是一个位字段)

    由于某种原因,它不起作用。当我检查linq.log时,它是完全空白的。

    就好像 db.SubmitChanges()

    2 回复  |  直到 9 年前
        1
  •  74
  •   ctrlShiftBryan    18 年前

    无法正确更新该表,因为它没有主键。(实际上它有一列,但当我在dev表中执行SELECT操作时,约束没有被复制)。 DataContext类需要用于更新的主键。

        2
  •  2
  •   Jon Skeet    18 年前

    或者,我不认为它是可空的<布尔>是吗,当前值为null?如果是这样的话,你的更新行实际上并没有做任何事情——对于可为空的布尔值!空=空。