日期:2014-05-20  浏览次数:20863 次

关于linq 更新数据请教各位大佬
我在调用linq的submitchanges方法的时候,发现只能先根据一定的条件查询一个数据对象,然后设置新的值才能更新,难道不能直接构造一个值进行更新吗?这样岂不是很浪费效率?

------解决方案--------------------
var q = from p in db.Products where p.ID == 1 
select p; 
foreach (var p in q) 

p.Price += 1.00M; 

db.SubmitChanges(); 
没有条件如何更新
主键不能修改
------解决方案--------------------
探讨
是这样的,比如我数据库中有表user,自动为id(主键),username,password,其中一条记录:1,张三,123456
我在cs中这样写:
user u = new user();
u.id=1;
u.username="张三";
u.password="aaaaaa";
然后调用ds.submitchanges(u)无法更新,只能先查出来再设置新的值:
user u = ds.user.single(u=>user u.uid=1);
u.password="aaaaaa";
ds.user.submitchanges(u);
为什么不能用前面的方法呢