.net core 用T4模板连接MySql生成实体类标题

4,把MySql.Data.dll放在项目根目录,也可以自行更改。

在之前参考那个博友的文章,他的是连接SQL server的。

下面是参考他的T4模板,进行了修改的:

//MySql.Data.dll需放在项目根目录也可以自行更改

//    声明字段

MySqlConnection conn;

string sql;

MySqlCommand command;

MySqlDataReader reader;

ListtablesName;

ListtablesMark;

MySqlDataReader markReader;        //用来读取字段注释的Reader

string templateFileDir = Path.GetDirectoryName(Host.TemplateFile); //获取tt模板目录

//    数据库连接

string strConn = "Server=localhost;Database=tianya;User=root;Password=root;charset=utf8;";        //数据库连接字符串-这个换了环境就要改

conn = new MySqlConnection(strConn);

conn.Open();

//    查MySql数据库中有多少张表的sql语句

sql = "show table status";

command = new MySqlCommand(sql, conn);

reader = command.ExecuteReader();

tablesName = new List();

tablesMark = new List();

//    把表集合赋值到tablesName

while (reader.Read())

{

tablesName.Add(reader[0].ToString());        //获取表名称

tablesMark.Add(reader[17].ToString());        //获取表注释

}

reader.Close();

//    获取Visual Studio实例

EnvDTE.DTE dte = (EnvDTE.DTE)

((IServiceProvider)Host).GetService(typeof(EnvDTE.DTE));

EnvDTE.ProjectItem templateProjectItem =

dte.Solution.FindProjectItem(Host.TemplateFile);

//    循环映射模型文件

for (int i =0; i < tablesName.Count ; i++)

{

ListcolumsName = new List();

ListcolumsType = new List();

//    获取数据库表的字段的名称

sql = string.Format("SHOW COLUMNS FROM {0}", tablesName[i]);

command.CommandText = sql;

reader = command.ExecuteReader();

while (reader.Read())

{

columsName.Add(reader.GetString(0));

}

reader.Close();

//    获取数据库表的字段的类型

sql = string.Format("SELECT * FROM {0} LIMIT 0", tablesName[i]);

command.CommandText = sql;

reader = command.ExecuteReader();

reader.Read();

for(int z = 0 ; z < reader.FieldCount ; z++){

Type type =reader.GetFieldType(z);

columsType.Add(type);

}

reader.Close();

#>

//------------------------------------------------------------------------------

// //     此代码由T4模板自动生成

//       生成时间

//     对此文件的更改可能会导致不正确的行为,并且如果

//     重新生成代码,这些更改将会丢失。

//

//------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

/// ///

///

public class {

for(int j = 0; jsql = string.Format("show full fields from {0} where Field = '{1}'" ,

tablesName[i] , columsName[j].ToString());

command.CommandText = sql;

markReader = command.ExecuteReader();

markReader.Read();

#>

/// ///

///

public   { get; set;}

} #>

}

byte[] byData = new byte[100];

char[] charData = new char[1000];

//    此地址与T4模板同目录

string path = templateFileDir +"\\"+tablesName[i]+".cs";

try

{

//    将生成的文件添加到T4模板下关联

File.WriteAllText(path , this.GenerationEnvironment.ToString());

templateProjectItem.ProjectItems.AddFromFile(path);

}

catch (IOException e)

{

Console.WriteLine(e.ToString());

}

this.GenerationEnvironment.Clear();

//↑↑清空T4模板当前的 文本模板转换进程(T4)用于组合生成的文本输出的字符串↑↑

}

command.Dispose();

conn.Close();

#>

t4模板 mysql_.net core 用T4模板连接MySql生成实体类相关推荐

  1. 自定义tt文本模板实现MySql指数据库中生成实体类

    自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击"添加"/"新建项",选择"文本模板",输入名称后点击添加. 2. ...

  2. CodeSmith模板(生成实体类)

    CodeSmith是一款与数据库相关的工具,只要与数据库相关的类都可以通过它编写模板来批量实现. <%@ Template Language="C#" TargetLangu ...

  3. .net core WebAPI 初探及连接MySQL

    .net core WebAPI 初探及连接MySQL 1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了. ...

  4. 9.动态生成实体类,根据XML模板使用Emit生成动态类绑定到DataGrid

    在实际项目中,我们可能会遇到用户自定义XML模板字段,根据这个模板上的字段来显示相应的字段的值到DataGrid.在这种情况下,需要使用 XmlReader解析获取这个用户自定义的XML模板上有哪些字 ...

  5. velocity笔记(一)什么是velocity,我们什么时候会使用到这个,基本语法,利用模板生成实体类的各层代码

    目录 什么是velocity 应用场景 组成结构 快速入门 总结 基本语法 注释 非解析内容 引用 变量引用 属性引用 方法引用 指令 流程控制指令 #set 指令 #if/#elseif/#else ...

  6. idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程

    一.概述 在上篇中使用EF基于数据模型创建数据库, 本篇继续使用 EF 基于数据库创建数据模型. 实现对已有数据库进行反向工程,来构建数据访问的 ASP.NET Core MVC 应用程序.已有数据库 ...

  7. .Net Core控制台amp;EFCore连接Mysql

    在用惯了Asp.Net Core提供的基架后,反过来想一想,貌似忘记了控制台如何去连接数据库了,因此,写一篇文章来借此巩固下并以后再来回顾时,加快步骤. 1.新建一个.Net Core控制台,然后安装 ...

  8. ASP .NET Core使用connection string连接MySQL/MariaDB,并设置UTF-8编码

    具体的使用文章参考我的这篇博客:ASP .NET Core Web 系列教程四:使用数据库进行交互(MySQL/MariaDB 版) 我这里介绍一下设置UTF-8的编码的Connection Stri ...

  9. efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...

    core 2.1 发行不久,正好要把一个已存在的mysql db的项目 迁移至 core 2.1, 网上搜了很多帖子,基本两个工具类,一个是Pomelo.EntityFrameworkCore.MyS ...

最新文章

  1. 深入浅出统计学(十四)卡方分布
  2. 通过NFS实现简单的文件共享
  3. SAP QM中阶之Reference Operation Set 的使用
  4. mysql+drdb+HA
  5. spring + shiro + cas 实现sso单点登录
  6. java return none,返回列表结果为none
  7. 查看并开启MySQL的log-bin和general_log日志
  8. 大数据技术 思维导图
  9. java web 不用框架_MyShop-不用框架的基础javaweb项目
  10. Linux的Vim编辑器
  11. (转载)Hadoop常用SDK系列五 TotalOrderPartitioner
  12. pytorch torchvision的版本对应关系 pytorch历史版本
  13. python大数据开发学习路线
  14. matlab的otdr仿真,otdr软件下载
  15. 五款APP让你告别拖延症!余生愿你活成自己想要的样子
  16. linux测试网络带宽 360,Linux版360浏览器提示此为beta测试版本,已超过测试时间3个月的处理...
  17. LM334微电流源的制作
  18. 计算机游戏优化,Win10电脑玩游戏优化方法!必须关闭这几个设置,效果提升巨大...
  19. 【清华大学陈渝】 第十一章_死锁
  20. [笔记] 数据结构二刷【第一篇:线性表·栈·队列·递归】

热门文章

  1. xbox one无线手柄到底是蓝牙还是普通2.4G
  2. Unity3D 内存优化(一)对象池
  3. python表白神器原理_python仿抖音表白神器
  4. java浏览器内核_深入理解浏览器内核 - 概述
  5. 神经切断是近视眼形成的根本原因
  6. 机器人控制器编程课程大纲(Arduino+ROS+IoT+SLAM……)2019-2020-1
  7. 计算机如何识别数据恢复,【Mac数据恢复】如何恢复Mac数据到计算机?
  8. testlink界面优化_Testlink中文问题修改
  9. Flink CEP 在抖音电商的业务实践
  10. 教你玩转PS形状工具