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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PFA聚四氟乙烯镊子耐强腐蚀可夹取太阳能硅片等

PFA镊子是一种高纯度聚四氟乙烯制成的实验室工具&#xff0c;具有以下特点&#xff1a; 1.高耐腐蚀性&#xff1a;PFA镊子能够抵抗酸、碱、盐等多种化学物质的侵蚀&#xff0c;适用于处理各种强腐蚀性物质。 2. 高耐高温性&#xff1a;PFA镊子的熔点较高&#xff0c;能够在高温…

【MySQL】复合查询 | 内外连接

文章目录 一、MySQL复合查询基本查询回顾多表查询自连接子查询单行子查询多行子查询多列子查询在from子句中使用子查询合并查询 二、MySQL内外连接内连接外连接左外连接右外连接 一、MySQL复合查询 基本查询回顾 准备测试表 下面给出三张表&#xff0c;员工表&#xff08;emp&…

又一款 AI 工具火爆全网!DomoAI 实测体验如何(二)

上一篇介绍了 DomoAI 的两种生成视频的方式&#xff1a; 1、根据上传的视频生成多种风格的视频 2、根据上传的图片生成视频 下图就是通过 DomoAI 生成的一组视频。 DomoAI测试视频 对制作过程感兴趣的可以看上一篇&#xff1a; 程序员X小鹿&#xff1a;【AI 视频】又一款 AI…

std::string在 Windows MSVC和Linux Gcc 中capacity容量扩容策略的分析和对比

1、capacity()作用 在std::string中&#xff0c;capacity()为当前string占用内存字符的长度&#xff0c;表示当前string的容量&#xff0c;可以理解为一个预分配制度&#xff0c;如果当前的string不断进行扩展操作&#xff0c;则不需要每次都进行内存上的分配&#xff0c;提高程…

【银行测试】银行金融项目测试总结+面试题汇总(答案)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、银行项目测试的…

人型动画足部IK权重曲线烘焙

简介 如下图所示&#xff0c;Left、Right FootIK Weight两条动画曲线用于设置人物角色足部IK时获取权重值&#xff0c;手动编辑且动画片段较多时比较费事&#xff0c;可以考虑程序化烘焙这两条足部IK权重曲线。 实现思路 创建新的编辑器窗口&#xff0c;在OnGUI中获取当前所…

FART12刷机脱壳记录笔记

其他脱壳笔记&#xff1a; https://codeooo.blog.csdn.net/article/details/126891503 fart12 脱壳系统 可以脱邦邦 爱加密 企业壳 等&#xff1b; 寒冰大佬的脱壳王 本文记录下刷机过程&#xff0c;方便以后查看使用。 adb授权和ome锁要开着 代表锁是开着状态 如果出现&a…

关于标准库中的反向迭代器

什么是迭代器&#xff1f; 迭代器&#xff08;iterator&#xff09;有时又称光标&#xff08;cursor&#xff09;是程序设计的软件设计模式&#xff0c;可在容器对象&#xff08;container&#xff0c;例如list或vector&#xff09;上遍历访问的接口&#xff0c;通常来…

Ps:图框工具

图框工具 Frame Tool是自 Ps 2019 版开始新增的一个工具。 图框 Frame可用于限制图像的显示范围&#xff0c;在设计过程中&#xff0c;还常常可起到占位符的功能。 快捷键&#xff1a;K 使用图框工具&#xff0c;对于快速相册排版、创建某种形式的特效等有一定的帮助。比起使用…

ctfshow 杂项签到

ctfshow的杂项签到题&#xff0c;下载压缩包之后里面有图片。 直接将图片用010editor打开&#xff0c;检索ctfshow可以看到答案。

Frequency-domain MLPs are More EffectiveLearners in Time Series Forecasting

本论文来自于 37th Conference on Neural Information Processing Systems (NeurIPS 2023) Abstract 时间序列预测在金融、交通、能源、医疗等不同行业中发挥着关键作用。虽然现有文献设计了许多基于 RNN、GNN 或 Transformer 的复杂架构&#xff08;注意力机制的计算太占用资…

.net6使用Sejil可视化日志

&#xff08;关注博主后&#xff0c;在“粉丝专栏”&#xff0c;可免费阅读此文&#xff09; 之前介绍了这篇.net 5使用LogDashboard_.net 5logdashboard rootpath-CSDN博客 这篇文章将会更加的简单&#xff0c;最终的效果都是可视化日志。 在程序非常庞大的时候&…

blender scripting 编写

blender scripting 编写 一、查看ui按钮对应的代码二、查看或修改对象名称三、案例&#xff1a;渲染多张图片并导出对应的相机参数 一、查看ui按钮对应的代码 二、查看或修改对象名称 三、案例&#xff1a;渲染多张图片并导出对应的相机参数 注&#xff1a;通过ui交互都设置好…

GEE数据集——USGS全球地震数据集

美国地质勘探局全球地震数据集 美国地质调查局地震灾害计划 (EHP) 提供全面的地震数据集&#xff0c;为全球监测、研究和地震防备提供宝贵资源。该数据集包含来自各种来源的地震信息&#xff0c;包括地震台、卫星图像和地面观测。持续更新&#xff0c;截至 2023 年 10 月 10 日…

跨境电商新纪元:无人驾驶技术如何颠覆物流未来

在全球化蓬勃发展的今天&#xff0c;跨境电商作为商业模式的一种新范式&#xff0c;正以前所未有的速度崛起。与此同时&#xff0c;无人驾驶技术作为物流领域的创新力量&#xff0c;正在为跨境电商带来翻天覆地的变革。本文将深入研究跨境电商新纪元下&#xff0c;无人驾驶技术…

Linux之文件目录

pwd 显示当前工作目录的绝对路径 ls显示目录中的内容 语法&#xff1a;ls [选项] 目录或文件常用选项&#xff1a; -a : 显示当前目录的所有文件和目录&#xff0c;包括隐藏的-l : 以列表的方式显示信息 cd切换目录 语法&#xff1a;cd [参数] &#xff08;切换到指定路径&…

Odoo16 实用功能之在Form视图控制字段的显示以及禁止编辑和禁止创建

目录 1、控制字段的显示 2、禁止编辑和禁止创建 1、控制字段的显示 在第一个字段没有选择的时候&#xff0c;让第二个字段不显示&#xff0c;选择之后第二个字段才显示&#xff0c;这个如何实现的&#xff1f; 以下是一个示例&#xff0c;假设disk_type是一个Selection字段&am…

数据通信网络基础华为ICT网络赛道

目录 前言&#xff1a; 1.网络与通信 2.网络类型与网络拓扑 3.网络工程与网络工程师 前言&#xff1a; 数据通信网络基础是通信领域的基本概念&#xff0c;涉及数据传输、路由交换、网络安全等方面的知识。华为ICT网络赛道则是华为公司提出的一种技术路径&#xff0c;旨在通…

python爬虫进阶篇:Scrapy中使用Selenium+Firefox浏览器爬取国债逆回购并发送QQ邮件通知

一、前言 每到年底国债逆回购的利息都会来一波高涨&#xff0c;利息会比银行的T0的理财产品的利息高&#xff0c;所以可以考虑写个脚本每天定时启动爬取逆回购数据&#xff0c;实时查看利息&#xff0c;然后在利息高位及时去下单。 二、环境搭建 详情请看《python爬虫进阶篇…

AI数字人克隆系统OEM:为未来创造更多可能

随着科技的发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域取得了重要突破。其中&#xff0c;一个备受关注的领域是AI数字人克隆系统。作为一种创新的技术&#xff0c;它引发了人们的浓厚兴趣。本文将以探秘AI数字人克隆系统OEM源码为主题&#xff0c;深入了解这…