实体生成

Posted 凡是过往,皆为序章。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体生成相关的知识,希望对你有一定的参考价值。

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ Assembly Name="System.Core" #>
<#@ Assembly Name="System.Windows.Forms" #>
<#@ Assembly Name="$(ProjectDir)\mysql.Data.dll" #>
<#@ Assembly Name="System.Data" #>
<#@ Assembly Name="System" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #> 
<#@ import namespace="MySql.Data" #>
<#@ import namespace="MySql.Data.MySqlClient" #>

<#


    string Db_Name="repairsystem",Table_Name="stock_infolist";
    string conStr="server=localhost;database=repairsystem;uid=root;pwd=root";
    MySqlConnection con=new MySqlConnection(conStr);
    con.Open();
    MySqlParameter mp1=new MySqlParameter("@db_name",Db_Name);
    MySqlParameter mp2=new MySqlParameter("@table_name",Table_Name);
    string sqlStr="select * from information_schema.COLUMNS where [email protected]_name ";//and [email protected]_name";
    MySqlCommand cmd=new MySqlCommand(sqlStr,con);
    cmd.Parameters.Add(mp1);
    cmd.Parameters.Add(mp2);
    MySqlDataReader dr = cmd.ExecuteReader();

#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@  include file="Base.tt" #>
<#
    var TableList=new List<string>();
    var DetailList=new List<Tuple<string,string,string>>();
    var TableName="";
    while(dr.Read())
    {
        var Table=dr["TABLE_NAME"].ToString();
        if(TableName==Table)
        {
            var Column=dr["COLUMN_NAME"].ToString();
            var DataTypeOld=dr["DATA_TYPE"].ToString();
            var DataType=DataTypeOld=="varchar"?"string":
                (DataTypeOld=="int"?"int":
                (DataTypeOld=="datetime"?"DateTime":
                (DataTypeOld=="decimal"?"decimal":
                (DataTypeOld=="char"?"string":
                (DataTypeOld=="bit"?"Boolean":"string")))));
            DetailList.Add(Tuple.Create(Table,DataType,Column));
        }
        else
        {
            TableList.Add(Table);
        }
        TableName=Table;
    }
#>
namespace DataBaseEntity
{
<# foreach(var item in TableList) { #>
    public class <#= item #>
    {<# foreach(var detail in DetailList) {if( item == detail.Item1 ) { #> 
        public <#=detail.Item2#> <#=detail.Item3#> { get; set; } 
<#}}#>    }
<# } #>}
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ include file="Base.tt" #> 

<#
    var TableInfo="";
    List<Tuple<string,string>> list=new List<Tuple<string,string>>();
    while(dr.Read())
    {
        var TableName=dr["table_name"].ToString();
        if(TableName==TableInfo)
        {
            var Column=dr["column_name"].ToString();
            var DataType=dr["data_type"].ToString();
            switch(DataType)
            {
                case "varchar":DataType="string";
                    break;
                case "int":DataType="int";
                    break;
                case "datetime":DataType="DateTime";
                    break;
                case "decimal":DataType="decimal";
                    break;
                case "char":DataType="string";
                    break;
                case "double":DataType="double";
                    break;
                case "float":DataType="float";
                    break;
                case "bit":DataType="Boolean";
                    break;
                default:DataType="string";
                    break;
            }
            list.Add(Tuple.Create(Column,DataType));
        }
        TableInfo=TableName;
    }
#>
// This is the output code from your template
// you only get syntax-highlighting here - not intellisense

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dapper;
using System.Data;

namespace MyNameSpace
{
    class <#= TableInfo #>
    {
    <#
    foreach(var item in list)
    {
    #>
    public <#= item.Item2 #> <#= item.Item1 #> { get ; set ; }
    <#
    }
    #>
}
}
 

 

以上是关于实体生成的主要内容,如果未能解决你的问题,请参考以下文章

EF 开始的片段时有问题 具有潜在运行时冲突

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:

EntityFramework 映射片段问题