有什么理由不适用吗?
这是我多次使用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时,它完全是空白的。
我的.dbml可能有问题吗?其他表似乎工作正常,但我比较.dbml中的属性,它们都匹配。
就像db.SubmitChanges()
;没有检测到任何需要的更新。
答案 0 :(得分:68)
由于没有主键,因此无法正确更新表。 (实际上它有列,但是当我执行SELECT INTO我的开发表时没有复制约束)。 DataContext类需要主键进行更新。
答案 1 :(得分:2)
就LINQ而言,InUse属性是否是“正常”属性? (例如,它不是自动生成的或类似的任何时髦?)
或者,我不认为它是Nullable< bool>是吗,当前值为null?如果是这样,你的更新行实际上并没有做任何事情 - 对于可空的布尔值,!null = null。