删除方法问题-Asp.net Web API
我有一个POST方法,效果很好 它获取一个对象列表,并使用Entity Framework AddRange将其添加到数据库中 我尝试对DELETE方法应用相同的逻辑(获取对象列表并使用RemoveRange将其从数据库中删除),它确实返回200 OK,但不从数据库中删除 职位删除方法问题-Asp.net Web API,asp.net,asp.net-mvc,entity-framework,asp.net-web-api,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Web Api,我有一个POST方法,效果很好 它获取一个对象列表,并使用Entity Framework AddRange将其添加到数据库中 我尝试对DELETE方法应用相同的逻辑(获取对象列表并使用RemoveRange将其从数据库中删除),它确实返回200 OK,但不从数据库中删除 职位 [HttpPost] 公共httpresponsemessagepost(列表行) { 尝试 { 使用(DbModel DbModel=new DbModel()) { dbModel.Provider\u status
[HttpPost]
公共httpresponsemessagepost(列表行)
{
尝试
{
使用(DbModel DbModel=new DbModel())
{
dbModel.Provider\u status.AddRange(行);
dbModel.SaveChanges();
}
}
捕获{}
返回新的HttpResponseMessage()
{
内容=新的字符串内容(“添加的记录”)
};
}
删除方法
[HttpDelete]
public HttpResponseMessage Delete(List<Provider_status> rows)
{
try
{
using (DbModel dbModel = new DbModel())
{
dbModel.Provider_status.RemoveRange(rows);
dbModel.SaveChanges();
}
}
catch { }
return new HttpResponseMessage()
{
Content = new StringContent("Records Deleted")
};
}
[HttpDelete]
公共HttpResponseMessage删除(列表行)
{
尝试
{
使用(DbModel DbModel=new DbModel())
{
dbModel.Provider\u status.RemoveRange(行);
dbModel.SaveChanges();
}
}
捕获{}
返回新的HttpResponseMessage()
{
内容=新的字符串内容(“已删除记录”)
};
}
一个可能的原因是
dbModel.Provider\u status.RemoveRange(行)代码>
正在将行
与提供程序状态
进行比较,并考虑到由于不匹配,因此不应删除任何行。请尝试此操作
foreach ( var row in rows)
{
var exRow= dbModel.Provider_status.FirstOrDefault(i=> i.Id==row.Id);
if( exRow!=null) dbModel.Provider_status.Remove(exRow);
}
dbModel.SaveChanges();
并且IMHO从操作中删除[HttpDelete]“不工作”不是一个足够详细的问题陈述,无法回答。更新为:它确实返回200 OK,但不从数据库中删除您是否缺少[HttpDelete]
操作中的属性?我添加了HttpDelete
但结果相同任何解决方法都可以从数据库中删除我得到2个错误1)无法将类型“long”隐式转换为“bool”2)无法将lambda表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换对于委托返回类型,这是一个输入错误。您必须使用==而不是=它起作用了!非常感谢。
foreach ( var row in rows)
{
var exRow= dbModel.Provider_status.FirstOrDefault(i=> i.Id==row.Id);
if( exRow!=null) dbModel.Provider_status.Remove(exRow);
}
dbModel.SaveChanges();