我需要帮助的设计问题。最好用一个例子来描述。 使用下面的域模型: - 学生 - 报名 - 课程查看模型设计的领域模型多对多关系
如果学生和课程有一个多对多的关系彼此,由报名表实现的,即招生有StudentID(FK)和CourseID (FK)。 学生和课程都有导航属性,即另一个导航属性。
我使用查看模型,并希望简单的CRUD功能,添加,编辑,删除学生和课程。 View模型与其相关的Domain模型非常相似。
要显示学生的详细信息很简单,但是当显示学生的课程信息时,哪种下面的设计会是最好的方法?
在Student View模型中,声明注册域模型的ICollection? 然后在视图中可以访问注册详细信息。 我觉得好像这样就解除了View模型试图实现的功能,那就是从领域模型中提取一个抽象层。使用这种设计,可以通过学生视图模型从视图访问注册域模型。
为Enrollment类创建View模型。 这将与其域模型相同。除View Model中的域模型的值之外,不会执行其他任何操作。必须通过AutoMapper进行映射。不知道该怎么做,感觉效率低下。
是的,很好,谢谢。我明白了为什么我不需要注册视图模型。另外,我正在使用实体框架,现在已经正确地阅读了导航属性和Fluent API。我了解如何创建外键关联(通过类中的FK)和独立关联(通过导航属性)。 –
@ThomasVeil如果是这种情况,我会将'Enrollment'表映射到一个Domain Model中。请检查[此答案](http://stackoverflow.com/a/5543702/1831275)以查看如何在EF中执行映射 – albusshin