mvc3 如果实现只修改表中部分字段值?

yctcsms 2013-10-10 10:38:11
用EF 映射了一张用户表User,字段如下:
userid 用户名
pwd 密码
name 姓名
tel 电话
address 地址
createtime 创建时间

接到要求要实现一个用户资料修改的功能,需对数据表中已有的数据(电话,地址)进行修改。于是,我在修改页面上制作了两个文本框
tel电话,address地址,提供给用户输入,其他项是只读的标签。

在提交修改的代码中,实例化了一个对象user,并且接收修改界面传递过来的值

由于页面传递过来只有文本框和用户名输入了值,即userid='001',user.tel='0000',user.address='地址',user的其他项是空的,当我用下面代码更新表时,会导致其他字段值被空,因为这样是把所有字段都更新了一遍。

db.User.Attach(user);
db.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
db.SaveChanges();

请问如何实现只更新表中部分字段,犹如这里的tel,address?
...全文
839 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
静静-风 2014-12-02
  • 打赏
  • 举报
回复
你代码里面是不是把其他的也同时更新了!
qizhichao110 2014-12-02
  • 打赏
  • 举报
回复
db.Users.Attach(user); var entry = db.Entry(user); entry.Property(e => e.tel).IsModified = true; entry.Property(e => e.address).IsModified = true; db.SaveChanges(); db.Entry(user);这个Entry点不出来是怎么回事?
yctcsms 2013-12-04
  • 打赏
  • 举报
回复
我了添加代码生成 EF 5.X DBCONTEXT Generator 可以实现这样的。可行。
引用 3 楼 webdiyer 的回复:
1楼版主给出的方法需要先从数据库获取一次数据,更改后再保存一次,用下面这种方法可以不用获取数据直接更新: db.Users.Attach(user); var entry = db.Entry(user); entry.Property(e => e.tel).IsModified = true; entry.Property(e => e.address).IsModified = true; db.SaveChanges(); ================================================================= ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用: http://www.webdiyer.com/mvcpager/
yctcsms 2013-11-15
  • 打赏
  • 举报
回复
to:webdiyer 等试下看看,谢谢~
骑猪看海 2013-10-12
  • 打赏
  • 举报
回复
都是蛋疼的写法
webdiyer 2013-10-12
  • 打赏
  • 举报
回复
1楼版主给出的方法需要先从数据库获取一次数据,更改后再保存一次,用下面这种方法可以不用获取数据直接更新: db.Users.Attach(user); var entry = db.Entry(user); entry.Property(e => e.tel).IsModified = true; entry.Property(e => e.address).IsModified = true; db.SaveChanges(); ================================================================= ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用: http://www.webdiyer.com/mvcpager/
  • 打赏
  • 举报
回复
只读的input标签,后台是接收不到的,user别到那里取
yctcsms 2013-10-11
  • 打赏
  • 举报
回复
可以,谢谢!
threenewbee 2013-10-10
  • 打赏
  • 举报
回复
user = db.User.Single(x => x.userid == id); user.xxx = xxx; user.xxx = xxx; db.SaveChanges();

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧