<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:36:29
        文檔

        MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2

        MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2:在前篇中我們已經(jīng)將User類中的代碼做了具體的實現(xiàn),但仍然有多個實體類未實現(xiàn),以后可能還會增加新的數(shù)據(jù)表,數(shù)據(jù)表結構也有可能發(fā)生變化,所以我們使用T4模板來完成類的生成,這樣就算數(shù)據(jù)庫表發(fā)生了改變,也會自動根據(jù)改變后的實體對類進行重新生成。 下面
        推薦度:
        導讀MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2:在前篇中我們已經(jīng)將User類中的代碼做了具體的實現(xiàn),但仍然有多個實體類未實現(xiàn),以后可能還會增加新的數(shù)據(jù)表,數(shù)據(jù)表結構也有可能發(fā)生變化,所以我們使用T4模板來完成類的生成,這樣就算數(shù)據(jù)庫表發(fā)生了改變,也會自動根據(jù)改變后的實體對類進行重新生成。 下面

        在前篇中我們已經(jīng)將User類中的代碼做了具體的實現(xiàn),但仍然有多個實體類未實現(xiàn),以后可能還會增加新的數(shù)據(jù)表,數(shù)據(jù)表結構也有可能發(fā)生變化,所以我們使用T4模板來完成類的生成,這樣就算數(shù)據(jù)庫表發(fā)生了改變,也會自動根據(jù)改變后的實體對類進行重新生成。

        下面是數(shù)據(jù)訪問層的T4模板文件 Dal.tt

        <#@ 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);
        
        //EF實體文件在項目中的路徑
        string inputFile = @"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        <#//這里為命名空間部分,手動更改為相應的命名空間 #>
        using PMS.IDAL;
        using PMS.Model;
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace PMS.DAL
        {
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         public partial class <#=entity.Name#>Dal :BaseDal<<#=entity.Name#>>,I<#=entity.Name#>Dal
         {
        
         }
        <#}#>
         
        }
        
        

        我們將EF實體文件路徑、命名空間更改為對應的值時,Ctrl+S保存,即可生成對應的其他類型的數(shù)據(jù)訪問類

        其他層中也大同小異,只需要做對應的更改即可,下面我將提供相應的代碼

        IDAL層

        IDal.tt

        <#@ 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 = @"..\\PMS.Model\\PMS.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 System.Threading.Tasks;
        using PMS.Model;
        
        namespace PMS.IDAL
        {
         
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         public partial interface I<#=entity.Name#>Dal :IBaseDal<<#=entity.Name#>>
         {
         
         }
        <#}#>
         
        }
        
        

        IDbSession.tt

        <#@ 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 = @"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        
        using System;
        using System.Collections.Generic;
        using System.Data.Entity;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        
        namespace PMS.IDAL
        {
         public partial interface IDbSession
         {
        
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         I<#=entity.Name#>Dal <#=entity.Name#>Dal{get;set;}
        <#}#>
         } 
        }
        
        

        DALFactory層

        SimpleDalFactory.tt

        <#@ 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 =@"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        
        using SW.OA.IDAL;
        using System;
        using System.Collections.Generic;
        using System.Configuration;
        using System.Linq;
        using System.Reflection;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace SW.OA.DALFactory
        {
         public partial class AbstractFactory
         {
         
         
        <#
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        { 
        #> 
         public static I<#=entity.Name#>Dal Create<#=entity.Name#>Dal()
         {
        
         string fullClassName = NameSpace + ".<#=entity.Name#>Dal";
         return CreateInstance(fullClassName) as I<#=entity.Name#>Dal;
        
         }
        <#}#>
         }
         
        }
        
        

        DbSession.tt

        <#@ 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 = @"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        using PMS.DAL;
        using PMS.IDAL;
        using PMS.Model;
        using System;
        using System.Collections.Generic;
        using System.Data.Entity;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace PMS.DALFactory
        {
         public partial class DBSession : IDBSession
         {
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         private I<#=entity.Name#>Dal _<#=entity.Name#>Dal;
         public I<#=entity.Name#>Dal <#=entity.Name#>Dal
         {
         get
         {
         if(_<#=entity.Name#>Dal == null)
         {
         _<#=entity.Name#>Dal = AbstractFactory.Create<#=entity.Name#>Dal();
         }
         return _<#=entity.Name#>Dal;
         }
         set { _<#=entity.Name#>Dal = value; }
         }
        <#}#>
         } 
        }
        
        

        BLL層

        Service.tt

        <#@ 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 = @"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        using PMS.IBLL;
        using PMS.Model;
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace PMS.BLL
        {
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         public partial class <#=entity.Name#>Service :BaseService<<#=entity.Name#>>,I<#=entity.Name#>Service
         {
         
        
         public override void SetCurrentDal()
         {
         CurrentDal = this.CurrentDbSession.<#=entity.Name#>Dal;
         }
         } 
        <#}#>
         
        }
        
        

        BLL層

        IService.tt

        <#@ 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 = @"..\\PMS.Model\\PMS.edmx";
        
        EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
        string namespaceName = code.VsNamespaceSuggestion();
        
        EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
        
        #>
        
        using PMS.Model;
        using PMS.Model.Search;
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace PMS.IBLL
        {
        <#
        // Emit Entity Types
        
        foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
        {
         //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");
         //BeginNamespace(namespaceName, code); 
        #> 
         public partial interface I<#=entity.Name#>Service : IBaseService<<#=entity.Name#>>
         {
         
         } 
        <#}#>
         
        }
        
        

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2

        MVC使用T4模板生成其他類的具體實現(xiàn)學習筆記2:在前篇中我們已經(jīng)將User類中的代碼做了具體的實現(xiàn),但仍然有多個實體類未實現(xiàn),以后可能還會增加新的數(shù)據(jù)表,數(shù)據(jù)表結構也有可能發(fā)生變化,所以我們使用T4模板來完成類的生成,這樣就算數(shù)據(jù)庫表發(fā)生了改變,也會自動根據(jù)改變后的實體對類進行重新生成。 下面
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产性生交xxxxx免费| 久久精品免费全国观看国产| 日本免费电影一区| 亚洲资源最新版在线观看| 日本高清在线免费| 亚洲午夜久久久久久尤物| 久久久久久精品免费免费自慰| 久久亚洲春色中文字幕久久久| 99久久免费观看| 亚洲天堂一区二区三区四区| 2020因为爱你带字幕免费观看全集| 亚洲手机中文字幕| 在线播放免费人成视频在线观看| 亚洲风情亚Aⅴ在线发布| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲日韩国产精品乱| 国产免费内射又粗又爽密桃视频| 亚洲熟女少妇一区二区| 毛片无码免费无码播放| 亚洲性线免费观看视频成熟| 成人性生交大片免费看午夜a| 国产精品亚洲а∨天堂2021| 国产亚洲情侣一区二区无| 99re免费在线视频| 亚洲色偷偷综合亚洲av78| 国产免费久久精品久久久| 久久免费香蕉视频| 亚洲卡一卡2卡三卡4麻豆| 国产真实伦在线视频免费观看| 久草免费福利在线| 亚洲国产精品久久丫| 亚洲成人影院在线观看| 亚洲一区二区在线免费观看| 亚洲精品第一综合99久久| 亚洲 无码 在线 专区| 99re这里有免费视频精品| 青青青亚洲精品国产| 亚洲AV永久无码精品成人| 最近中文字幕mv手机免费高清 | 中文字幕乱码亚洲无线三区| 国产亚洲欧洲Aⅴ综合一区 |