0

我目前使用 Jtable 来处理事件类型列表,但每次我尝试通过表删除时,我都会收到错误“值不能为空。参数名称:实体”。

    [HttpPost]
    public JsonResult DeleteEventType(EventType eventType)
    {
        using (var db = new ICTTBEntities())
        {
            try
            {
                var newObj = db.EventTypes.SingleOrDefault(e => e.EventTypeID == eventType.EventTypeID);
                if (newObj != null)
                {
                    db.EventTypes.Remove(newObj);
                    db.SaveChanges();
                    return Json(new { Result = "OK" });
                }
                return Json(new { Result = "ERROR", Message = "eventType is null" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
    }

有什么建议吗?

4

1 回答 1

0

您通过另一个 ICTTBEntities 上下文获取 eventType,这就是它可能无法在您的新上下文中找到它的原因。

尝试通过 Id 从新上下文中获取 eventType。

此外,不要忘记在删除对象后在您的上下文中调用 SaveChanges。

利用

var newObj = db.EventTypes.Single( e => e.Id == eventType.Id);
db.EventTypes.Remove(newObj);
db.SaveChanges();
于 2013-03-29T15:58:12.270 回答