删除方法问题-Asp.net Web API

删除方法问题-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

我有一个POST方法,效果很好 它获取一个对象列表,并使用Entity Framework AddRange将其添加到数据库中

我尝试对DELETE方法应用相同的逻辑(获取对象列表并使用RemoveRange将其从数据库中删除),它确实返回200 OK,但不从数据库中删除

职位

[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();