這個工具,是在一個項目中提取出來的,現在免費提供給大家使用。
本文介紹的 Linq to SQL T4 代碼生成器有如下特點:
1、支援 dbml 檔案。能夠通路 dbml 設計器中的對象。
2、可能通多修改模版來生成代碼。
3、可以生成多個檔案。比如:一個類一個檔案。
準備:
1、T4 代碼編輯器(goole 即可)。盡管不是必須,但是為了友善代碼的編輯,還是建議安裝一個。
開始:
1、建立一個項目。然後運作 LicenseFileGenerator.exe 生成一個名為 deco.lic 的授權檔案,并添加到項目中。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauYmN0UWNhRGM2AzN0MzMiNGOmRzNlFDMmZzM1EWO2ITMfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.jpg)
其中 Assembly 為項目生成檔案的名稱,Company 為項目中的公司名稱,如果沒有,可以不填。在這裡生的 assembly 檔案名為 ConsoleApplication1.exe,是以要 Assembly 檔案本框中填入的是 ConsoleApplication1.exe ,而并非 ConsoleApplication1,公司名稱為空,是以可以不填。
點選 Generate 按鈕後在目前路徑中生成一個 deco.lic 檔案。請把該檔案添加到項目中去。
2、建立名為 Northwind.dbml 的檔案,并禁用原來的代碼生成器。選項 Northwind.dbml 檔案。把 Custom Tool 選項清空(預設為 MSLinqToSQLGenerator)。
3、建立一個名為 Northwind.tt 的檔案。打開 Northwind.tt 檔案進行編輯。然後按儲存生成代碼。
内容如下:
<#@ template inherits="ModelingTextTransformation" language="C#" debug="true" hostspecific="True"#>
<#@ QuickCode processor="DbmlProcessor" requires="ModelFile='Northwind.dbml'"#>
<#@ output extension=".cs" #>
<#@ import namespace = "System.Text.RegularExpressions" #>
using ALinq;
using ALinq.Mapping;
namespace <#= DataContext.ContextNamespace #>
{
public partial class <#= DataContext.Name #> : ALinq.DataContext
public <#= DataContext.Name #>(string connection) :
base(connection)
}
<# foreach(ITable table in DataContext.Tables){ #>
public Table<<#= table.Type.Name #>> <#= table.Member #>
get
return this.GetTable<<#= table.Type.Name #>>();
<# } #>
下來解釋一下上面的代碼。我們現在要關注的 DataContext 對象。這個對象很重要,Dbml 設計器的對象,都是通過 DataContext 對象來進行通路。你可以把它和 Dbml 設計器的中的 DataContext 對應起來。