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

时间:2015-02-03 07:23:37

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

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

2 个答案:

答案 0 :(得分:3)

我假设您只希望从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());

答案 1 :(得分:2)

过滤你想要的“聊天”。

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

迭代完毕后删除。

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