首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Entity Framework只更新一个字段?

如何使用Entity Framework只更新一个字段?
EN

Stack Overflow用户
提问于 2010-09-04 20:56:59
回答 16查看 255K关注 0票数 213

这是桌子

用户

代码语言:javascript
复制
UserId
UserName
Password
EmailAddress

和代码..

代码语言:javascript
复制
public void ChangePassword(int userId, string password){
//code to update the password..
}
EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2011-04-06 22:02:24

Ladislav的答案更新为使用DbContext (在EF 4.1中引入):

代码语言:javascript
复制
public void ChangePassword(int userId, string password)
{
    var user = new User() { Id = userId, Password = password };
    using (var db = new MyEfContextName())
    {
        db.Users.Attach(user);
        db.Entry(user).Property(x => x.Password).IsModified = true;
        db.SaveChanges();
    }
}
票数 400
EN

Stack Overflow用户

发布于 2010-09-04 22:49:39

您可以通过以下方式告诉EF哪些属性需要更新:

代码语言:javascript
复制
public void ChangePassword(int userId, string password)
{
  var user = new User { Id = userId, Password = password };
  using (var context = new ObjectContext(ConnectionString))
  {
    var users = context.CreateObjectSet<User>();
    users.Attach(user);
    context.ObjectStateManager.GetObjectStateEntry(user)
      .SetModifiedProperty("Password");
    context.SaveChanges();
  }
}
票数 53
EN

Stack Overflow用户

发布于 2016-10-05 09:22:22

在实体框架核心中,Attach返回条目,因此您所需要的是:

代码语言:javascript
复制
var user = new User { Id = userId, Password = password };
db.Users.Attach(user).Property(x => x.Password).IsModified = true;
db.SaveChanges();
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3642371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档