• 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;}
        <% } %>
        }
    }
  • 相关阅读:
    JVM常用参数整理
    mac系统使用Chrome浏览器https不自动保存密码
    JVM和JMM内存模型
    Chrome提示是否保存密码点击了否,导致没有自动保存密码
    解决Mac系统IDEA debug卡顿问题
    DBeaver的时区问题
    IDEA导航光标回退和前进快捷键失效
    Dubbo 2.6.0升级到2.7.3
    chrome浏览器备忘
    电脑导入mobi书籍文件到IPAD的方法
  • 原文地址:https://www.cnblogs.com/uptothesky/p/3556983.html
Copyright © 2020-2023  润新知