ef框架原理,ef框架使用教程
返回目录
EF 4.1我研究了一段时间,还没有静下心来研究它的架构。今天有空就把它的架构和数据操作拿出来。希望对大家有帮助,也是对自己的一个总结:P
如图所示,我们使用MVC3进行程序开发。哈哈,我们才开始用3.0。项目整体架构还是传统的三层,其他公共层,服务层,UI层我就不说了。只说EF还存在的实体层和数据层。我用EF生成器生成之后,又整理了一个,因为不想把EF的底层方法暴露给业务层。
我来一一说说我的计划:
OAContext.cs:这是生成器生成的,不修复。
cs:这是数据库的基类,它向它的子类公开一个属性和一个方法。
它是属性OAContext的实例,方法是SaveChanges的包,子类可以按照自己的逻辑复制。
IRepository.cs:这是一个提供更新操作的统一接口,它需要需要更新的子类来实现。我还没搞清楚EF的统一更新,哈哈。
IEntityRepository.cs:这是一个统一的数据操作接口,是除update之外所有操作的通用接口。
EntityRepository.cs:统一操作接口的实现
好的,下面我把源代码公开,大家可以看看。有好的施工请联系我!
RepositoryBase.cs
7公共接口友谊库实体这里用的是entity:class//泛型接口。
13 ///摘要
15 ///根据数据库实体插入一条记录-"
17////摘要
19空插件(实体实体);
23 ///摘要
25 ///根据数据库实体插入记录-[Batch]
27////摘要
29 void Insert(IList TEntity list);
33 ///摘要
35 ///删除一条记录
37////摘要
39 ///param name=oArr /param
41 void删除(TEntity实体);
45 ///摘要
47 ///删除列表
49////摘要
51 ///param name=list /param
53 void Delete(IList TEntity list);
57 ///摘要
9///获取实体列表
61////摘要
63 ///returns /returns
65 DbSet TEntity GetList();
67 }
9公共类实体存储潜力:存储库,科学存储潜力
11其中TEntity : class
13 {
15 #区域科学潜在成员
19公共空插入(潜在实体)
21 {
23这个。_db。设置TEntity()。添加(实体);
25这个。_db。条目(实体)。状态=系统。Data . EntityState.Added
27这个。save changes();
29 }
33公共void插入(IList TEntity列表)
35 {
37列表。ToList()。ForEach(实体=
39 {
41这个。_db。设置TEntity()。添加(实体);
43这个。_db。条目(实体)。状态=系统。Data . EntityState.Added
45 });
47这个。save changes();
49 }
53公共void删除(实体实体)
55 {
57这个。_db。设置TEntity()。移除(实体);
59这个。_db。条目(实体)。状态=系统。Data . EntityState.Deleted
61这个。save changes();
63 }
67公共无效删除(IList TEntity列表)
69 {
71列表。ToList()。ForEach(实体=
73 {
75这个。_db。设置TEntity()。移除(实体);
77这个。_db。条目(实体)。状态=系统。Data . EntityState.Deleted
79 });
81这个。save changes();
83 }
87公系统。data . entity . dbset TEntity GetList()
89 {
91退这个。DbSet
93 }
97 ///摘要
9///通用数据表属性
101////摘要
103受保护的数据库
105 {
107 get {还这个。_db。set TEntity();}
109 }
111 #端区
115 ///摘要
17///操作提交
119////摘要
121公共覆盖void SaveChanges()
123 {
125基地。save changes();
127 }
129 }
返回目录
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。