CodeSmith讀取數據庫


這兩天在看CodeSmith文檔,因為官方文檔在讀數據庫這一篇使用的是VB寫的,對於C#使用者來說看起來很不方便,所以我改成C#的,順便寫下我自己的使用過程。

首先,要使用CodeSmith連接數據庫,需要引入

<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

假如需要讀取某張表的數據,需要定義一個屬性指示這張表

<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" %>

當然還可以加入一些自定義的配置,例如命名空間、作者什么的

<%@ Property Name="Author" Type="String" Description="作者" %>
<%@ Property Name="NameSpace" Type="String" Description="命名空間" %>

編譯過后會在屬性窗口出現可以設置的屬性

SourceTable屬性默認為空, 點擊右側的那個三個點按鈕,會彈出對話框

點擊Data Source右側的那個兩個點按鈕

點Add按鈕新增一個數據庫連接

輸入Name,Provider Type選擇SqlSchemaProvider,點擊Connection String 右側的三點按鈕

輸入Server Name,可以選擇Windows身份認證或者SQL Server 密碼認證,然后選擇一個數據庫,最后點擊OK,接着再點OK,回到選擇表界面,下拉框中選擇剛加入的數據庫,會自動列出該庫中的所有表

選中一張表后,回到屬性界面,輸入其它屬性,寫入模板代碼,然后點Generate生成吧。

附上模板代碼:

<%@ Template Language="C#" TargetLanguage="C#" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="Author" Type="String" Description="作者" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="數據庫" %>
<%@ Property Name="NameSpace" Type="String" Description="命名空間" %>
//
// Created: <%=DateTime.Now.ToShortDateString() %>
// Author: <%=Author %>
//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace <%=NameSpace %>
{
    public class <%=SourceTable.Name %>
    {
    <%for(int i=0;i<SourceTable.Columns.Count;i++)
    { %>
        public <%=SourceTable.Columns[i].SystemType %> <%=SourceTable.Columns[i].Name %>{get;set;}
    <% } %>
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM