一朋友要交毕业设计,叫我帮他搞个简单的图书管理系统,我反正晚上也没事情,就准备帮他捣鼓一个简单的。由于是毕业设计,因此准备采用在工作中很少使用到的技术来开发,也好给自己练练手,因此选用了Entityframework,spring.net
,asp.net MVC 等技术来开发。以下是我这个项目的工程结构:Common为公共类,主要存放与业务无关的公共类,也包括扩展方法也存放在此类库中。
Domain为领域逻辑层,主要存放领域对象。
DTO为数据传输对象层,主要用来传输数据对象,MVC中Controller到View或者View到Controller的数据传输对象也放在这里面,不在使用ViewData。
Filter为拦截器层次,主要用来控制权限,操作日志的记录等。
Model为模型层次,Entityframework对象,一些枚举对象都放在了此层中。
Repository为数据库持久化层。
EntityFrameworkHeper代码:
1 using System; 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在这个项目中的简单应用。
一下为源代码,不过只是简单的实现了用户管理功能。