一朋友要交毕业设计,叫我帮他搞个简单的图书管理系统,我反正晚上也没事情,就准备帮他捣鼓一个简单的。由于是毕业设计,因此准备采用在工作中很少使用到的技术来开发,也好给自己练练手,因此选用了Entityframework,spring.net ,asp.net MVC 等技术来开发。以下是我这个项目的工程结构:
Common为公共类,主要存放与业务无关的公共类,也包括扩展方法也存放在此类库中。
Domain为领域逻辑层,主要存放领域对象。
DTO为数据传输对象层,主要用来传输数据对象,MVC中Controller到View或者View到Controller的数据传输对象也放在这里面,不在使用ViewData。
Filter为拦截器层次,主要用来控制权限,操作日志的记录等。
Model为模型层次,Entityframework对象,一些枚举对象都放在了此层中。
Repository为数据库持久化层。
EntityFrameworkHeper代码:
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Com.Romi.YangXiaoDong.Model;
6 using Com.Romi.YangXiaoDong.IRepository;
7 using System.Threading;
8
9 namespace Com.Romi.YangXiaoDong.Repository
10 {
11 /// <summary>
12 /// 持久化基础类
13 /// </summary>
14 public class BaseRepository
15 {
16 private static ThreadLocal<BookManageEntities> threadLocal = new ThreadLocal<BookManageEntities>();
17 #region IBaseQuery 成员
18 /// <summary>
19 /// 打开
20 /// </summary>
21 /// <returns></returns>
22 public BookManageEntities GetSession()
23 {
24 BookManageEntities session = (BookManageEntities)threadLocal.Value;
25 if (session == null)
26 {
27 session = new BookManageEntities();
28 threadLocal.Value = session;
29 }
30 return session;
31 }
32 /// <summary>
33 /// 关闭
34 /// </summary>
35 public void CloseSession()
36 {
37 BookManageEntities session = (BookManageEntities)threadLocal.Value;
38 if (session != null)
39 {
40 session.Dispose();
41 }
42 }
43 #endregion
44 }
45 }
以上代码是仿照java中的Hibernate的帮助类写的。假如各位发现有问题请提出,小弟将感激万分。
这篇文章主要先介绍了这个练手项目的基本结构,下一篇开始将会简单介绍下EntityFramework在这个项目中的简单应用。
一下为源代码,不过只是简单的实现了用户管理功能。
/Files/kimiyang/BookManage.rar
/Files/kimiyang/Com.Romi.YangXiaoDong.Model.rar