假设我有一个学生教师视图模型,您可以保存教师,然后保存该教师的学生列表。
public class StudentTeacherVM()
{
public Teacher teacher{ get; set; }
public List<Student> students { get; set; }
}
用户填写教师并提供学生列表。然后我将所有这些保存到数据库中。我保存老师,返回新的老师,然后循环学生,贴上新老师,然后保存学生。 (按照代码进行演示,我的实际代码大不相同)。
public ActionResult SaveStudent(StudentTeacherVM model)
{
Repository repo = new Repository();
repo.SaveTeacher(model);
foreach(var s in model.students)
{
//add the new teacherid then save the student
repo.SaveStudent(model);
}
}
每个repo调用都会打开和关闭数据库连接,因为我使用的是
using(var db = new MyEntity)
{
db.Teacher.Add(newTeacher);
}
我想做的是,如果其中一名学生未能保存,我现在吐出整个学生名单,但我还需要回去删除刚刚输入的新老师。
看起来我可以做一个&#34;如果学生未能保存,请删除老师,其中teacherid = newTeacherId&#34;它似乎有效。
我想知道是否存在某种内置&#39;回滚&#39;我可以在这里使用的功能,如果有,我会被取消资格&#34;从使用它,因为我打开和关闭数据库连接?