实体未使用 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();
}
我正在为我的 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();
}