Asp.net MVC + EF + Spring.Net 项目实践(三)

时间:2023-03-09 00:05:34
Asp.net MVC + EF + Spring.Net 项目实践(三)

这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的文件,所以用了百度):http://pan.baidu.com/s/1kTIIJqf,如果有编译不通过的,请重新引用package中相关的dll

1. 首先把项目中所有没有用的Class1.cs都删除,然后把在StudentManageSystem.Repository层的Model都移动到StudentManageSystem.Model层里,效果如下

  Asp.net MVC + EF + Spring.Net 项目实践(三)--> Asp.net MVC + EF + Spring.Net 项目实践(三)

  注意要修改Model的命名空间,还要添加引用

  Asp.net MVC + EF + Spring.Net 项目实践(三)

2. 在StudentManageSystem.Repository层和StudentManageSystem.Repository.Test层添加StudentManageSystem.Model的引用,运行单元测试,若能通过,则说明重构成功(若不成功,挥刀自宫^_^)

  Asp.net MVC + EF + Spring.Net 项目实践(三)

3. 添加IBaseRepository接口、BaseRepository类,再修改SMSContext.cs文件,添加Detach方法。
BaseRepository需要一个带参数的构造器,这块是为了后期使用时,可以注入dbcontex。

  Asp.net MVC + EF + Spring.Net 项目实践(三)

4. 在StudentManageSystem.Interface层添加IStudentRepository, IScoreRepository, ISubjectRepository, IGradeRepository四个文件,在IStudentRepository中添加接口GetById

  Asp.net MVC + EF + Spring.Net 项目实践(三)

5. 对应的在StudentManageSystem.Repository层添加四个Repository文件,在StudentRepository类里实现GetById接口,如下图

  Asp.net MVC + EF + Spring.Net 项目实践(三)

6. 新建一个单元测试,StudentRepository的GetById方法能正确返回值。

  Asp.net MVC + EF + Spring.Net 项目实践(三)