用NHibernate处理带属性的多对多关系(二)

2014-11-24 11:44:37 · 作者: · 浏览: 1
{ student = new Student {Name = studentName, Courses = new Dictionary()}; session.Save(student); } var course = GetCourse(courseName) new Course {Name = courseName, Students = new Dictionary()}; if (course.Students.ContainsKey(student)) { course.Students[student] = score; } else { course.Students.Add(student, score); } session.SaveOrUpdate(course); tx.Commit(); }

否则,就等着NHibernate抛出异常吧。

5、结论

用Map/Dicitionary表达的多对多关系,要比用Bag/List所表达的,操作起来更为复杂。但这样的代价,我们乐意承担。

这是因为,我们更看重模型设计,更重视概念完整性。是模型决定具体实现,而不是反过来,根据具体实现来修改模型的设计。