Asp.Net Mvc 从数据库中删除列 table

Asp.Net Mvc delete columns from database table

我正在尝试删除用户名 = 当前用户名的所有 table 数据。但是 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);
        }

我假设您只希望从 Where 过滤器中得到一个 return 对象。 将您的行更改为,因为根据 thisWhere 子句 return 是一个 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());

过滤你想要的"chats"。

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

遍历它们并删除后。

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