中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何抽象出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

杭锦旗| 余干县| 密山市| 邯郸市| 定兴县| 本溪市| 白山市| 浦城县| 三门县| 尤溪县| 军事| 恩平市| 石门县| 赤城县| 平利县| 周至县| 蒙阴县| 长武县| 明水县| 丰都县| 五家渠市| 故城县| 柳州市| 九江市| 巩留县| 长春市| 叙永县| 图们市| 都匀市| 抚远县| 龙门县| 天祝| 洛川县| 延津县| 扎兰屯市| 寿宁县| 宝清县| 滦南县| 同德县| 定州市| 洪湖市|