千家信息网

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

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"如何抽象出CRUD及怎么应用T4模版"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何抽象出CRUD及怎么应用T4模版"文章能帮助大家解决问
千家信息网最后更新 2025年02月03日如何抽象出CRUD及怎么应用T4模版

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 添加名为IDaoExt 的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().OrderBy(e => e.Name)) //便利edmx模型中映射的实体对象  {#>          public interface I<#=entity.Name#>Dao:IBaseDao<<#=entity.Name#>> //生成实体对象接口      {      }  <#};#>  }

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

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

接口 实体 模版 应用 程序 对象 方法 生成 条件 知识 技术 文件 文件夹 概念 空间 行业 项目 更新 不同 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 快速配置win云服务器 vb数据输入数据库 武汉网络技术公司 如何打开服务器 2004年的服务器什么配置 风林火山网络技术有效公司 吉林专业软件开发服务品质保障 alsy服务器 网络安全等级保护设计与实践 东丽区电子网络技术答疑解惑 高港区自动化网络技术哪家好 快捷方式登录服务器怎么注销账号 教学虚拟仿真用什么软件开发 西安软件开发兼职网 sekiro游戏服务器怎么跳过 网络安全创业的机会 外包软件开发方法 途家网络技术公司怎么样 徐州品牌软件开发销售价格 冬奥会期间网络安全保障工作汇报 从本质上讲什么是一个共享数据库 数据库原理与应用讨论 形容高精尖的网络技术 软件开发中的业务代表什么 莆田市网络技术管理室 平湖crm数据库管理 学生国家网络安全法心得体会 软件开发二线人员的招聘 从数据库更新模型 光标离开事件后存入数据库
0