温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何抽象出CRUD及怎么应用T4模版

发布时间:2022-03-31 09:56:26 来源:亿速云 阅读:120 作者:iii 栏目:开发技术

这篇文章主要介绍“如何抽象出CRUD及怎么应用T4模版”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何抽象出CRUD及怎么应用T4模版”文章能帮助大家解决问题。

一、创建Cnblogs.Rdst.IDAO程序集

系列概述:全系列会详细介绍抽象工厂三层的搭建,以及EF高级应用和 ASP.NET MVC3.0简单应用,应用到的技术有Ef、Lambda、Linq、Interface、T4等。

由于网上对涉及到的技术概念介绍很多,因此本项目中不再对基本概念加以叙述。 

1.1 先在解决方案中创建一个Interface 文件夹,用于存放抽象出的接口

如何抽象出CRUD及怎么应用T4模版

1.2 在Interface文件夹中添加名为Cnblogs.Rdst.IDAO的程序集

如何抽象出CRUD及怎么应用T4模版

1.3 添加引用系列一中创建的Domain程序集和System.Data.Entity程序集

如何抽象出CRUD及怎么应用T4模版           

二、抽象数据访问层的基接口

2.1 在刚创建的Cnblogs.Rdst.IDAO程序集中创建IBaseDao接口

如何抽象出CRUD及怎么应用T4模版

2.2 在IBaseDao中定义常用的CRUD方法

using System;   using System.Collections.Generic;   using System.Linq;   using System.Text;      namespace Cnblogs.Rdst.IDAO   {      public interface IBaseDao<T>                    where T:class,                    new ()//约束T类型必须可以实例化      {          //根据条件获取实体对象集合          IQueryable<T> LoadEntites(Func<T,bool> whereLambda );             //根据条件获取实体对象集合分页          IQueryable<T> LoadEntites(Func<T,bool> whereLambda, int pageIndex, int pageSize,out int totalCount);             //增加          T AddEntity(T entity);             //更新          T UpdateEntity(T entity);             //删除          bool DelEntity(T entity);             //根据条件删除          bool DelEntityByWhere(Func<T, bool> whereLambda);      }   }

此时基接口中的CRUD方法就定义完成。接下来我们需要使用T4模版生成所有的实体类接口并实现IBaseDao接口。

三、生成所有的实体类接口

3.1 添加名为IDaoExt 的T4文本模版

如何抽象出CRUD及怎么应用T4模版

3.2 在模版中贴入以下代码,其中注释的地方需要根据各自的项目进行更改

<#@ template language="C#" debug="false" hostspecific="true"#>  <#@ include file="EF.Utility.CS.ttinclude"#><#@   output extension=".cs"#>  <#  CodeGenerationTools code = new CodeGenerationTools(this);  MetadataLoader loader = new MetadataLoader(this);  CodeRegion region = new CodeRegion(this, 1);  MetadataTools ef = new MetadataTools(this);   string inputFile = @"..\\Cnblogs.Rdst.Domain\\Model.edmx";//指定edmx实体模型所在的路径   EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);  string namespaceName = code.VsNamespaceSuggestion();   EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);   #>  using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;  using Cnblogs.Rdst.Domain;//引用Domain的命名空间   namespace Cnblogs.Rdst.IDAO //实体类接口所在的命名空间  {  <#  foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) //便利edmx模型中映射的实体对象  {#>          public interface I<#=entity.Name#>Dao:IBaseDao<<#=entity.Name#>> //生成实体对象接口      {      }  <#};#>  }

3.3 T4模版编辑完成后,Ctrl+s保存,提示是否运行,点击确认。此时就自动帮我们生成了所有的实体类接口,并实现了IBaseDao接口,相应的也具有了CRUD方法定义。

如何抽象出CRUD及怎么应用T4模版

如何抽象出CRUD及怎么应用T4模版

关于“如何抽象出CRUD及怎么应用T4模版”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI