【问题标题】:Delete method issue - Asp.net Web API删除方法问题 - Asp.net Web API
【发布时间】:2021-07-26 19:08:25
【问题描述】:

我有一个工作正常的 POST 方法 它需要一个对象列表并使用 Entity Framework AddRange 将其添加到数据库中

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

发布

[HttpPost]
        public HttpResponseMessage Post(List<Provider_status> rows)
        {
            try
            {
                using (DbModel dbModel = new DbModel())
                {
                    dbModel.Provider_status.AddRange(rows);
                    dbModel.SaveChanges();
                }
            }
            catch { }
            return new HttpResponseMessage()
            {
                Content = new StringContent("Records Added")
            };
        }

删除方法

[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")
            };
        }

【问题讨论】:

  • “不工作”不是一个足够详细的问题陈述,无法回答。
  • 更新为:确实返回 200 OK 但不会从数据库中删除
  • 您是否缺少操作中的[HttpDelete] 属性?
  • 我添加了 HttpDelete 但结果相同
  • 您正在捕获并忽略任何错误(异常),您会错过系统告诉您的重要信息吗?

标签: c# asp.net asp.net-mvc entity-framework asp.net-web-api


【解决方案1】:

试试这个

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

恕我直言,从操作中删除 [HttpDelete]

【讨论】:

  • 我得到 2 个错误 1) 无法将类型 'long' 隐式转换为 'bool' 2) 无法将 lambda 表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型
  • 这是一个错字。你必须使用 == 而不是 =
【解决方案2】:

一个可能的原因是

dbModel.Provider_status.RemoveRange(rows);

正在使用 reference equality 比较 rowsProvider_status 并考虑到由于没有匹配项,因此不应删除任何内容。

【讨论】:

  • 知道如何解决这个问题以便能够从数据库中删除
猜你喜欢
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
相关资源
最近更新 更多