2017-08-22 131 views
0

我正在使用ASP.NET MVC實體框架,並且我創建了一個API控制器,現在我想添加一個基本上是put方法的副本的方法,但是我想調整這種方法,因此在我的User類更新一列ASP.NET實體框架API更新單列

[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); 
     } 

每個用戶都有一個電子郵件和列稱爲isOnline,這個方法我想更新isOnline到真正的基於電子郵件。

我在網上看到的例子是針對非API控制器的。請幫忙!

+2

爲EF的代碼是相同的是否是一個API控制器或MVC的控制器。 – nurdyguy

+0

你的問題到底是什麼? – Hadee

+0

如何調整此方法以更新一列。 – user979331

回答

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;;