我是一个有用的助手,可以翻译文本。
我有两个实体User和Course。用户可以选多门课程,这使得关系为一对多。但是单个课程可以被多名学生选修,因此它成为多对多的关系。
现在,我需要为用户注册课程。我的用户实体具有:
这段文字描述了使用Linq to SQL生成类,但是Linq to SQL无法处理多对多关系,因此需要手动处理。问题在于如何将信息发送到数据库。UserRepository.Save(user)是否负责保存课程。这意味着User是Course实体的聚合根,但实际上不是,因为可以通过许多不同的方式访问Course,不依赖于User对象提供Course。即使有一个CourseRegistrationService(我有),我也必须调用存储库来保存更改。哪个存储库负责保存有关用户和课程关系的更改。也许是UserCourseRepository!只是在User对象下放置一个List是否会使User成为聚合根,或者这是不正确的。如果是这样,那么您将如何使用自动生成List和一对多关系的OR MAPPERS设计应用程序。
我有两个实体User和Course。用户可以选多门课程,这使得关系为一对多。但是单个课程可以被多名学生选修,因此它成为多对多的关系。
现在,我需要为用户注册课程。我的用户实体具有:
public void AddCourse(Course course)
{
if (CoursesAlreadyAdded(course))
{
AddBrokenRule(new BrokenRule() { PropertyName = course.ClassCode, Message = String.Format("Course with classCode = {0} already added", course.ClassCode) });
return;
}
UserCourses.Add(new UserCourse() { UserId = this.UserId, CourseId = course.CourseId, Course= course, User = this});
}
这段文字描述了使用Linq to SQL生成类,但是Linq to SQL无法处理多对多关系,因此需要手动处理。问题在于如何将信息发送到数据库。UserRepository.Save(user)是否负责保存课程。这意味着User是Course实体的聚合根,但实际上不是,因为可以通过许多不同的方式访问Course,不依赖于User对象提供Course。即使有一个CourseRegistrationService(我有),我也必须调用存储库来保存更改。哪个存储库负责保存有关用户和课程关系的更改。也许是UserCourseRepository!只是在User对象下放置一个List是否会使User成为聚合根,或者这是不正确的。如果是这样,那么您将如何使用自动生成List和一对多关系的OR MAPPERS设计应用程序。