QcInfoEntities context=new QcInfoEntities();
DAL.Users user=new Users()
{
User_ID = Guid.Parse("8787D20E-CCCC-41DF-A44A-5A272B7FAFA6"), //主键
User_Name = "131"
};
context.Users.Attach(user);
context.Entry(user).State = EntityState.Modified;
context.SaveChanges();
通常都是从数据库查出一条记录再修改的,但是我想直接NEW一个User_ID与数据库中主键User_ID相同的对象,再提交更新.问题是更新后其余的字段都变为了NULL.
10 个解决方案
#1
这个不是必然的么?
那你想要什么结果?
那你想要什么结果?
#2
我想只更新 User_Name 字段,别的不动
#3
你要这样做的话必须先根据User_ID查出来所有字段的值,实例化的时候一一赋值
#4
这样有什么意义么?
你既然想保持其他的值不变,到头来不还是要先将其他的值检索出来再赋值么?
你既然想保持其他的值不变,到头来不还是要先将其他的值检索出来再赋值么?
#5
QcInfoEntities context=new QcInfoEntities();
DAL.Users user=context.Users.Single(u=>u.User_ID==Guid.Parse("8787D20E-CCCC-41DF-A44A-5A272B7FAFA6"));
user.User_Name = "131";
//context.Users.Attach(user);
//context.Entry(user).State = EntityState.Modified;
context.SaveChanges();
#6
我记得有种方法是不用先查数据库的,只用连接一次数据库就可以修改.如果查的话要连接两次.
#7
你直接用 context执行UPDATE的SQL语句,就只用访问一次数据库了
#8
#9
不错,学习了
#10
这个跟执行 两次的那个有什么区别 在 linq to entity 都能应用吗????
有没有什么弊端 不然就都用访问一次的了 这么写貌似简单一些啊。
#1
这个不是必然的么?
那你想要什么结果?
那你想要什么结果?
#2
我想只更新 User_Name 字段,别的不动
#3
你要这样做的话必须先根据User_ID查出来所有字段的值,实例化的时候一一赋值
#4
这样有什么意义么?
你既然想保持其他的值不变,到头来不还是要先将其他的值检索出来再赋值么?
你既然想保持其他的值不变,到头来不还是要先将其他的值检索出来再赋值么?
#5
QcInfoEntities context=new QcInfoEntities();
DAL.Users user=context.Users.Single(u=>u.User_ID==Guid.Parse("8787D20E-CCCC-41DF-A44A-5A272B7FAFA6"));
user.User_Name = "131";
//context.Users.Attach(user);
//context.Entry(user).State = EntityState.Modified;
context.SaveChanges();
#6
我记得有种方法是不用先查数据库的,只用连接一次数据库就可以修改.如果查的话要连接两次.
#7
你直接用 context执行UPDATE的SQL语句,就只用访问一次数据库了
#8
#9
不错,学习了
#10
这个跟执行 两次的那个有什么区别 在 linq to entity 都能应用吗????
有没有什么弊端 不然就都用访问一次的了 这么写貌似简单一些啊。