Asp.net mvc 带有实体框架的MVC保存问题

Asp.net mvc 带有实体框架的MVC保存问题,asp.net-mvc,entity-framework-4,Asp.net Mvc,Entity Framework 4,我有一个页面,用于注册培训人员。当前页面上有三个下拉列表,一个用于选择要注册的人员,一个用于选择课程,另一个用于选择课程提供的会话。要求修改页面,使其现在有四组课程和会话下拉列表,以允许用户一次最多为一个人注册四个课程。我的问题是如何处理现在的表格张贴。在此之前,如果用户试图向课程中添加一个人,他们已经注册了实体框架模型绑定,则会捕获错误并将错误消息发送回表单。现在有四个实例需要同时计算和保存,我不确定如何实现这个绑定。我是MVC和EF的新手,因此任何帮助/指导都将不胜感激 编辑:下面是原始控制

我有一个页面,用于注册培训人员。当前页面上有三个下拉列表,一个用于选择要注册的人员,一个用于选择课程,另一个用于选择课程提供的会话。要求修改页面,使其现在有四组课程和会话下拉列表,以允许用户一次最多为一个人注册四个课程。我的问题是如何处理现在的表格张贴。在此之前,如果用户试图向课程中添加一个人,他们已经注册了实体框架模型绑定,则会捕获错误并将错误消息发送回表单。现在有四个实例需要同时计算和保存,我不确定如何实现这个绑定。我是MVC和EF的新手,因此任何帮助/指导都将不胜感激

编辑:下面是原始控制器保存功能的一部分:

    var AddToCourse = new Session_Registrant()
{
    RegistrantID = RegistrantID,
    SessionID = Session1,
    RegistrantOrg = regOrg,
    RegistrantTitle = title,
    RegistedDate = DateTime.Now

};
//attempt to save
try
{
    if (ModelState.IsValid)
    {
        db.AddToSession_Registrant(AddToCourse);
        db.SaveChanges();
    }
}
catch (DataException error)
{
    if (error.InnerException != null)
    {
        if (error.InnerException.Message.Contains("UNIQUE KEY constraint"))
        {
            //adding custom error message to explain the failure
            ModelState.AddModelError("", "Error! Registrant has already been added to this course session.");
        }
    }
    else
    {
        ModelState.AddModelError("Error", error.Message);
    }
}

我想知道问题是否出在函数的设计上,而不是实现上。应根据注册人实体和课程/课程实体之间的一对多关系来定义问题

我还认为,将异常作为设计的一部分是不好的做法,这是一个定义问题。您(您的代码)是否应该提出以下问题:

  • 这是注册学生吗
  • 该学生是否已在本课程中预订了课程
  • 该学生是否已在其他课程中注册
换句话说,定义您的业务规则,实现它们,然后问题应该通过SMOC(编码的小问题)自行解决


如果这个回答没有更直接的帮助,我很抱歉,但我觉得这是一个错误的起点。祝你好运。

如果你能发布相关代码,你可能会得到你想要的帮助。谢谢你的回复。我在上面添加了一些原始的保存功能。你是将IE称为“互联网”的人之一吗?如果不是,那你为什么把ASP.NET MVC框架称为MVC(这是一种独立于语言的设计模式)?我不是有意造成任何混乱,你是对的,我应该说得更清楚。你只是批评我还是有什么想法?谢谢你的回复。我对编程比较陌生,所以请耐心等待。您是正确的,在db中,注册人和课程/课程之间存在一对多关系。我不知道你所说的“我的代码是否应该询问注册人是否已经预订了此会话”是什么意思。还有其他更好的方法吗?除此之外,我如何防止用户两次预订同一课程?再次感谢您的帮助/指导。我的建议是首先定义业务规则。检查某人是否已注册的一种方法是从数据库中读取用户已注册的内容,并在写入数据之前检查是否存在冲突/冲突,而不是真正的主键错误。你好。我一直让db中的约束为我做检查,我认为这节省了一些编码。但当我尝试将它与多个插入一起使用时,这就成了我的问题。我将在save函数的开头执行一些查询,以检查注册人在保存之前是否已经注册。谢谢你的帮助!