【问题标题】:Asp.Net Mvc delete columns from database tableAsp.Net Mvc 从数据库表中删除列
【发布时间】:2015-02-03 07:23:36
【问题描述】:

我正在尝试删除用户名 = 当前用户名的所有表数据。但是lambda表达式和转换有一些错误。“无法将源类型转换为目标类型。有帮助吗?

public JsonResult DeleteChatMessages(int id)
        {
            string toId = Session["SessionUserName"].ToString();
            tblChat tblchats = _obj.tblChat.Where(p => p.ToId == toId);
            _obj.tblChat.Remove(tblchats);
            _obj.SaveChanges();
            return this.Json(true, JsonRequestBehavior.AllowGet);
        }

【问题讨论】:

  • 将您的线路改为tblChat tblchats = _obj.tblChat.FirstOrDefault(p => p.ToId == toId)

标签: c# asp.net-mvc linq controller


【解决方案1】:

我假设您只希望从Where 过滤器返回一个对象。 将您的线路更改为,因为根据 thisWhere 子句返回 IEnumerable<TSource>。您将其分配给非 IEnumerable 对象。

  tblChat tblchats = _obj.tblChat.FirstOrDefault(p => p.ToId == toId)

您可能还需要检查Null,然后再将其从tblChat 中删除。

如果您希望有多个对象与过滤器匹配并希望删除所有对象,请使用@tmg 方法。

    _obj.tblChat.RemoveRange(_obj.tblChat.Where(p => p.ToId == toId).ToList());

【讨论】:

    【解决方案2】:

    过滤你想要的“聊天”。

     var tblchats = _obj.tblChat.Where(p => p.ToId == toId).ToList();
    

    在遍历它们并删除之后。

        foeach(chat in tblchats){
            _obj.tblChat.Remove(chat);
        }
        _obj.SaveChanges();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多