实体未使用 Entity Framework 6 在数据库中更新

Entity not updating in database using Entity Framework 6

我正在为我的 Xamarin Android 应用程序创建一个 API 并且我创建了这个方法来更新数据库中的密码:

[HttpPut]
[ActionName("updatepassword")]
public HttpResponseMessage updatepassword(string password,string email)
{
    user_table user = dbe.user_table
                         .Where(x => x.email_address == email)
                         .FirstOrDefault();
    user.password_hash = password.GetHashCode();

    var response = dbe.SaveChanges();
    string finalresponse = "password updated successfully" + response;

    return Request.CreateResponse(HttpStatusCode.OK, finalresponse );
}

但是当我使用 postman 测试它时,它显示 0 个实体受到影响。

我也试过使用

dbe.user_table.AddorUpdate()

但是还是不行,请帮帮我

这是我的邮递员查询

http://192.168.10.9:8044/api/account/updatepassword/?password=asad1234&email=asadregards@gmail.com

我已经在 IIS 服务器上发布了我的 API,这就是我使用 IP 地址而不是本地主机的原因。

将您的代码更改为:

var user = dbe.user_table
            .Where(x => x.email_address == email)
             .FirstOrDefault();

var response=0;
if (user!=null)
{
   user.password_hash = password.GetHashCode();
 dbe.Entry(user).State = EntityState.Modified;

// Or you can try 
//dbe.Entry(user).Property(i => i.password_hash).IsModified = true;

    response = dbe.SaveChanges();
}
 
........
........

也许改变你 API header 也是个好主意:

[Route("updatepassword/{password}/{email}")]
public  IHttpActionResult updatepassword(string password,string email)
{
.........
.......
return response>0 ? Ok():BadRequest();

}