ASP.NET实体框架API更新单列

时间:2017-08-22 21:13:15

标签: c# asp.net asp.net-mvc entity-framework

我正在使用ASP.NET MVC Entity Framework并且我创建了一个API控制器,现在我想添加一个基本上是put方法的副本的方法,但是我想调整这个方法以便更新单个列< / p>

[ResponseType(typeof(void))]
        [Authorize]
        public IHttpActionResult PutUser(int id, Users user)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != user.id)
            {
                return BadRequest();
            }

            db.Entry(user).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UsersExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }

我的User类中的每个用户都有一个名为isOnline的电子邮件和列,对于此方法,我想根据电子邮件将isOnline更新为true。

我在网上看到的例子是非API控制器。请帮助!

1 个答案:

答案 0 :(得分:1)

您的主题是实体框架中的部分更新,以下是一个示例:

var user= new User() {Id = id, TargetColumn = "test"};
context.Users.Attach(user);
var entry = context.Entry(user);
entry.Property(e => e.TargetColumn ).IsModified = true;;