亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

MVC如何使用T4模板生成其他類

發布時間:2021-08-27 09:22:08 來源:億速云 閱讀:172 作者:小新 欄目:開發技術

這篇文章主要介紹了MVC如何使用T4模板生成其他類,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

下面是數據訪問層的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保存,即可生成對應的其他類型的數據訪問類

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

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#>>
  {
    
  }  
<#}#>
  
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“MVC如何使用T4模板生成其他類”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節
推薦閱讀:
  1. T4模版
  2. T4 Template Overview

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mvc
AI

莱西市| 洪江市| 百色市| 临潭县| 金华市| 古田县| 扶沟县| 曲松县| 夹江县| 乐安县| 林西县| 湄潭县| 六安市| 元谋县| 新沂市| 炉霍县| 浙江省| 津市市| 峨眉山市| 梁河县| 西乌珠穆沁旗| 五指山市| 库伦旗| 辉南县| 阿巴嘎旗| 鸡东县| 城市| 乾安县| 永寿县| 隆昌县| 桃源县| 齐齐哈尔市| 樟树市| 卢龙县| 皮山县| 济源市| 正镶白旗| 垫江县| 南涧| 汕头市| 嘉义市|