2017-08-22 3 views
0

ASP.NET MVC Entity Frameworkを使用していて、APIコントローラを作成しましたが、今度は基本的にputメソッドのコピーであるメソッドを追加したいのですが、調整したいそれはASP.NET Entity Framework 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); 
     } 

単一の列を更新しますので、この方法は私のUserクラス内の各ユーザーは、私は本当の電子メールに基づいてするisOnlineを更新するこの方法のために、isOnlineと呼ばれる電子メールや列を持っています。

私がオンラインで見た例は、非APIコントローラの例です。助けてください!

+2

var user= new User() {Id = id, TargetColumn = "test"}; context.Users.Attach(user); var entry = context.Entry(user); entry.Property(e => e.TargetColumn).IsModified = true;; 
EFのコードがAPIコントローラまたはMVCコントローラであるかどうかと同じです。 – nurdyguy

+0

あなたの質問は何ですか? – Hadee

+0

このメソッドを調整して1つの列を更新するにはどうすればよいですか。 – user979331

答えて

1

被写体はEntity Frameworkの中に部分更新され、次の例である:

関連する問題