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;}
    <% } %>
    }
}
复制代码

 

posted @   uptothesky  阅读(5043)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示