ef框架原理,ef框架使用教程

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: