前言
在数据访问层应用Repository模式来隔离对领域对象的细节操作是很有意义的。它位于映射层之上作为对于数据进行CRUD操作的一个抽象层。在Repository模式中,我们可以像操作内存里的集合一样来操作数据,而Repository则负责把我们的操作更新到数据库中。
构建Repository
在构建Repository模式之前,我们先列举在我们项目中将要使用到的用例,由于我们项目的重点是Web Api,所以Repository的构建相对比较简单,并没有用泛型基类的方式来构建。
查询所有的科目,通过ID获得某个科目。
查询所有的课程以及关联的对象(导师和科目) 。
根据ID获取某个课程以及关联的对象(导师,学科以及参与该课程的学生)
查询所有的学生以及相关对象(参与的课程,课程所在学科,导师)
根据课程ID查询所有报读的学生信息
通过用户名查询学生
通过用户名和密码验证学生信息
为注册过的学生提供选课功能
学生和课程的CRUD
创建ILearningRepository接口来定义所有的用例:
![复制代码](https://i-blog.csdnimg.cn/blog_migrate/69c5a8ac3fa60e0848d784a6dd461da6.gif)
public interface ILearningRepository
{
IQueryable GetAllSubjects();
Subject GetSubject(int subjectId