LINQ没有更新.SubmitChanges()

时间:2008-10-15 21:15:18

标签: linq linq-to-sql submitchanges

有什么理由不适用吗?

这是我多次使用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();没有检测到任何需要的更新。

2 个答案:

答案 0 :(得分:68)

由于没有主键,因此无法正确更新表。 (实际上它有列,但是当我执行SELECT INTO我的开发表时没有复制约束)。 DataContext类需要主键进行更新。

答案 1 :(得分:2)

就LINQ而言,InUse属性是否是“正常”属性? (例如,它不是自动生成的或类似的任何时髦?)

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