zoukankan      html  css  js  c++  java
  • C#T4模板

    TmpQuery.cs
    
    using Da.Dao;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace Da.Extend
    {
        public class TmpQuery
        {
            private string _connStr = string.Empty;
            private string _dbName = string.Empty;
    
            public TmpQuery(string connStr, string dbName)
            {
                _connStr = connStr;
                _dbName = dbName;
            }
    
            public IList<string> GetTables()
            {
                IList<string> list=null;
                string sqlStr = "select name from sysobjects where type='u'";
                DataSet ds=DbHelper.GetQuery(_connStr,sqlStr);
                if(ds==null)
                {
                    return list;
                }
                if(ds.Tables.Count<=0)
                {
                    return list;
    }
                list=new List<string>();
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string tableName = ds.Tables[0].Rows[i]["name"].ToString();
                    list.Add(tableName);
                }
                return list;
             }
    
    public IList<DbColumnEntity> GetColumns(string tableName)
            {
                IList<DbColumnEntity> list = null;
                StringBuilder sqlStr = new StringBuilder();
                sqlStr.Append("SELECT a.name TabLeName,b.name ColumnName,c.DATA_TYPE ColumnType,b.max_length ColumnLen ");
                sqlStr.Append("FROM sys.tables a join sys.columns b on b.object_id = a.object_id ");
                sqlStr.Append("join INFORMATION_SCHEMA.COLUMNS c on b.name=c.COLUMN_NAME and a.name=c.TABLE_NAME ");
                sqlStr.AppendFormat("where a.name='{0}'", tableName);
                DataSet ds = DbHelper.GetQuery(_connStr, sqlStr.ToString());
                if (ds == null)
                {
                    return list;
                }
                if (ds.Tables.Count <= 0)
                {
                    return list;
                }
                list = new List<DbColumnEntity>();
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DbColumnEntity column = new DbColumnEntity();
                    column.ColumnName =Convert.ToString(ds.Tables[0].Rows[i]["ColumnName"]);
                    column.ColumnType = Convert.ToString(ds.Tables[0].Rows[i]["ColumnType"]);
     column.ColumnLen = Convert.ToInt32(ds.Tables[0].Rows[i]["ColumnLen"]);
                    list.Add(column);
                }
                return list;
            }
        }
    }
    ModeAutoGenterTemplate.tt
    
    <#@ template language="C#" debug="True" hostspecific="True" #>
    <#@ output extension=".cs" #>
    <#@ assembly name="Microsoft.CSharp" #>
    <#@ assembly name="System" #>
    <#@ assembly name="System.Core" #>
    <#@ assembly name="System.Data" #>
    <#@ assembly name="System.Data.DataSetExtensions" #>
    <#@ assembly name="System.Xml" #>
    <#@ assembly name="System.Xml.Linq" #>
    <#@ assembly name="$(TargetDir)Da.Dao.dll" #>
    <#@ assembly name="$(TargetDir)Da.Extend.dll" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ import namespace="System.Data.SqlClient" #>
    <#@ import namespace="Da.Dao" #>
    <#@ import namespace="Da.Extend" #>
    <#@ include file="ManagerAuto.ttinclude"#>
    <# var manager = new Manager(Host, GenerationEnvironment, true) { OutputPath = Path.GetDirectoryName(Host.TemplateFile)}; 
       var query = new TmpQuery("Data Source=172.17.51.67;Initial Catalog=master;User ID=sa;Password=kingdee$2015;", "master");
       var tableList = query.GetTables();      
    #>
    <# foreach(string talbeName in tableList){ #>
    
    <# manager.StartBlock(talbeName+".cs"); #>
    using System;
    namespace MyProject.Entities 
    {
        [Serializable()]
        public class <#= talbeName #>
        {        
    <# 
            IList<DbColumnEntity> list=query. GetColumns(talbeName);
            if(list!=null&&list.Count>0)
            {
                foreach(DbColumnEntity dbColumn in list){ 
    #>
            public string <#=dbColumn.ColumnName#> {get;set;}
    <# } #>
    <# } #>
        }
    }
    
    <# manager.EndBlock(); #>
    <# } #>
    <# manager.Process(true); #>
  • 相关阅读:
    后端分页但是前端想要把所有数据取出来
    css做多列瀑布流
    css制作骰子
    css球体
    css摩天轮
    css圆圈慢慢放大
    01-布局扩展-自适应两栏布局
    Zigbee 知识简介
    华为OD 嵌入式方向面经
    算法练习题 2 合唱队
  • 原文地址:https://www.cnblogs.com/joyet-john/p/7344577.html
Copyright © 2011-2022 走看看