C# SqlSugar 数据库 T4模板

生成效果

模板代码

<#@ 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";
    }
}
#>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/269089.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片素材管理软件Eagle for mac提高素材整理维度

Eagle for mac是一款图片素材管理软件&#xff0c;支持藏网页图片&#xff0c;网页截屏&#xff0c;屏幕截图和标注&#xff0c;自动标签和筛选等功能&#xff0c;让你设计师方便存储需要的素材和查找&#xff0c;提供工作效率。 Eagle mac软件介绍 Eagle mac帮助你成为更好、…

小天使的小难题:新生儿疝气的关注与温馨呵护

引言&#xff1a; 新生儿疝气是一种在出生后可能出现的常见情况&#xff0c;虽然通常不会造成长期影响&#xff0c;但对于家长而言&#xff0c;了解如何正确应对新生儿疝气是至关重要的。本文将深入探讨新生儿疝气的原因、症状&#xff0c;以及家长在面对这一问题时应该采取的…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

系列七(实战)、发送 接收单向消息(Java操作RocketMQ)

一、发送 & 接收单向消息 1.1、概述 发送单向消息&#xff0c;适用于发送方不关心或者不在意消息的发送结果&#xff0c;这种方式的吞吐量很大&#xff0c;但是存在消息丢失的风险&#xff0c;对于重要消息要慎用&#xff01;该种方式通常适用于对消息没有那么严格的场景中…

0基础学习VR全景平台篇第131篇:曝光三要素—光圈

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 我们经常从电视或书刊上看到这样的照片&#xff0c;照片的主体清晰&#xff0c;前后镜朦胧虚化&#xff0c;整体看起来非常的漂亮。那这样的照片是如何拍出来的呢&#xff1f;他和…

A+CLUB管理人支持计划第十期 | 坤望基金

免责声明 本文内容仅对合格投资者开放&#xff01; 私募基金的合格投资者是指具备相应风险识别能力和风险承担能力&#xff0c;投资于单只私募基金的金额不低于100 万元且符合下列相关标准的单位和个人&#xff1a; &#xff08;一&#xff09;净资产不低于1000 万元的单位&…

第十八节TypeScript 泛型

1、简介 泛型是一种编程语言特性&#xff0c;允许在定义函数、类、接口等使用占位符来表示类型&#xff0c;而不是具体的类型。 泛型是一种在编写可重用、灵活且类型安全的代码时非常有用的功能。 使用泛型的主要目的是为了处理不特定类型的数据&#xff0c;使得代码可以适用…

公众号推荐流量玩法的3个秘密

从微信生态的流量触点来看&#xff0c;公众号链接着私聊、朋友圈、微信群、小程序、视频号、搜一搜、看一看等一切与目标用户能接触到的中转站 流量的尽头是私域。而对于大部分普通人来说&#xff0c;公众号可以作为私域的第一站。且相比个人微信号&#xff0c;其有着深度价值…

【数字电路】期末速通!

1. 数制及转换 常用的数制&#xff1a;十进制&#xff08;D&#xff09;&#xff0c;二进制&#xff08;B&#xff09;&#xff0c;八进制&#xff08;O&#xff09;&#xff0c;十六进制&#xff08;H&#xff09;。 常见的码制包括以下几种&#xff1a; 二进制码&#xff…

xposed 02 - 模块编写与构造函数Hook

本文讨论一下xposed模块编写的步骤&#xff0c;与如何hook构造函数&#xff0c;以及一些需要注意的地方。 Xposed模块编写 跟把大象放冰箱分3步一样&#xff0c;编写xposed模块只需要4步。 第一步 拷贝 XposedBridgeApi.jar 到模块工程的 libs 目录下&#xff0c;放一个 ja…

Unity 根据 数字 让 显示游戏总时长的txt直接显示该个 时间时分秒显示方法

Unity 根据 数字 让 显示游戏总时长的txt直接显示该个 时间时分秒显示方法 效果如下&#xff1a; 上代码 void Update(){int timeER int.Parse((txt_gameTimesER - Time.deltaTime).ToString("00"));Set_All_PlayTime_txtLookTime(timeER,bg.txt_LastTime); }/// &…

c 语言学习:输出阶乘的算式

c 语言学习&#xff1a;输出阶乘的算式 代码 #include "stdio.h"int fact(int num){if (num < 1){printf("1 ");return 1;} else {printf("%d x ",num);return num * fact(num-1);} }int main(){int num 10; // printf("plz inpu…

[Latex写作] vscode搭建latex写作环境

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 如果是为了方便简洁,实际使用Overleaf完全够了,之前也写过使用Obsidian写文章的教程. 这次主要介绍使用在本地vscode加上插件写论文. 需要工具 vscode 官网即可texlive 通过镜像站即可,比如Index of /CTAN/systems…

类和对象的创建和实例化

1. 类的概述 1.1 具体示例 类是描述一类事物的特征和行为的统称&#xff0c;抽象的不存在的&#xff0c;泛指的概念&#xff0c;例如&#xff1a;描述一个人&#xff0c;从外观上&#xff08;特征&#xff09;和言行举止&#xff08;行为&#xff09;上进行描述外观上&#xff…

智能安全配电装置在临时展会场所中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 【摘要】简述了商场临时展会、展摊等场所中电气装置用电的特性&#xff0c;针对此类场所中隐含的电气安全隐患问题&#xff0c;结合智能安全配电装置的功能&#xff0c;从用电设备的接地、线路的安装与敷设、设备的维护和管理…

LaTex插入图片

一、插入图片 在.tex文件开头导入相应的宏包 \documentclass{article} \usepackage{graphicx} % 导入图像的宏包、单图 \usepackage{subfigure} % 导入图像的宏包、子图 \graphicspath{{./images/}} % 告诉 LaTeX 这篇文档中的图片所存储的位置是主文档所在目录下的 images 文…

【XR806开发板试用】系列之二:出现已经成功编译,但是无法生成镜像文件的问题

本文主要对于编译成功但是烧录出现问题进行解决&#xff0c;用Hello world 和LED点亮代码作为示范 文章仅为参考网络资料和自身理解&#xff0c;如有不正确之处请多指正 首先确定自己根目录在哪&#xff0c;我们都在根目录进行hb set和hb build -f,判断方法是寻找ohos_config.…

为什么要出现并发?并发的三要素

大家好&#xff0c;我是"java继父"伯约&#xff0c;假如这篇对大家有帮助的话求一个赞&#xff0c;另外文章末尾放了我从小白到架构师多年的学习资料。 1.为什么需要多线程 众所周知&#xff0c;CPU、内存、I/O 设备的速度是有极大差异的&#xff0c;为了合理利用 C…

CentOS环境下Nacos2.3集成PostgreSQL

title: CentOS环境下Nacos2.3集成PostgreSQL date: 2023-12-21 19:15:00 categories: Nacos description: CentOS环境下Nacos2.3集成PostgreSQL 1. 目录 1. 目录2. 简介3. 安装部署 3.1. 部署模式3.2. 环境准备3.3. 下载安装文件3.4. PostgreSQL插件 3.4.1. 下载地址3.4.2. 结…

圆中点算法

中心在原点&#xff0c;半径为 R 的圆的隐式函数方程为 F ( x , y ) x 2 y 2 − R 2 0 F(x, y) x^2 y^2 - R^2 0 F(x,y)x2y2−R20 把像素上的点的坐标代入上述隐式方程 八分法画圆算法 利用坐标轴和与坐标轴夹角 45 度的直线 原理 假设圆弧起点 x 0 x0 x0&#xff0…