我正在使用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控制器。请帮助!
答案 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;;