有什么理由不适用吗?

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

有帮助吗?

解决方案

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

其他提示

InUse属性是否为<!>“正常<!>”;就LINQ而言,一个问题是什么? (例如,它不是自动生成的或类似的任何时髦?)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top