C# SqlSugar 数据库 T4模板
2023-12-24 18:43:06
生成效果
模板代码
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Data" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data"#>
<#@ import namespace="System.Data.SqlClient"#>
<#
// 连接字符串
string connectionString = "Server=DESKTOP-7IR5JSN;Database=BlazorApp;Integrated Security=False;User ID=sa;Password=asdf-1234;";
// 数据库连接
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
// 查询数据库中的表信息
string query = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'";
SqlCommand command = new SqlCommand(query, connection);
List<string> tables = new List<string>();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
tables.Add(reader.GetString(0));
}
}
// 生成模型类
foreach (var table in tables)
{
#>
namespace BlazorORM.Entity
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
// 生成的模型类对应数据库表: <#= table #>
[SugarTable("<#= table #>")]
public class <#= table #>
{
<#
query = $"SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{table}'";
command.CommandText = query;
List<string> columns = new List<string>();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string columnName = reader.GetString(0);
string columnType = reader.GetString(1);
#>
// 对应数据库列:<#= columnName #>,类型:<#= columnType #>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 可根据需要设置主键、自增等属性
public <#= GetCSharpType(columnType) #> <#= columnName #> { get; set; }
<#
}
}
#>
}
}
<#
}
// 关闭连接
connection.Close();
// 将数据库类型映射为 C# 类型
string GetCSharpType(string dbType)
{
// 可根据数据库类型自定义映射
switch (dbType)
{
case "int":
return "int";
case "nvarchar":
return "string";
// 添加其他数据库类型映射
default:
return "object";
}
}
#>
文章来源:https://blog.csdn.net/qq873113580/article/details/135184360
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!