zoukankan      html  css  js  c++  java
  • 使用T4模板调用Sqlserver链接生成自己的模板

    <#@ template debug="false" hostspecific="false" language="C#" #>
    <#@ assembly name="Microsoft.CSharp" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    <#@ import namespace="System.Text" #>
    <#@ assembly name="System.Data" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ import namespace="System.Data.SqlClient" #>
    <#@ import namespace="System.Dynamic" #>
    <#@ output extension=".cs" #>
    <# 
        var namespaceName="Reap.DAL.Repositories";
        var connectionString = @"data source=xxx;Initial Catalog=xxx;User ID=sa;Password=xx;";   
         using (var db = new SqlConnection (connectionString))
         using (var cmd = db.CreateCommand())
         {
            db.Open();
            var tables= ReadRows (cmd, "SELECT * FROM sys.tables WHERE NAME<>'__MigrationHistory'").ToArray();
    #>
    using Reap.Models.Models;
    using Reap.IDAL.Repositories;
    using Reap.DAL.UnitOfWork;
    namespace <#=namespaceName#>{
      <#
            foreach (var table in tables)
            {         
      #>
         public class I<#=table.name#>Repository:EFRepositoryBase<<#=table.name#>>,I<#=table.name#>Repository{
            }
      <#
         }
         }
      #>
      }
      <#+
       static IEnumerable<dynamic> ReadRows (SqlCommand command, string sql)
         {
            command.CommandText = sql ?? "";
    
            using (var reader = command.ExecuteReader())
            {
               while (reader.Read())
               {
                  var dyn = new ExpandoObject ();
                  IDictionary<string, object> dic = dyn;
    
                  for (var iter = 0; iter < reader.FieldCount; ++iter)
                  {
                        dic[reader.GetName(iter) ?? ""] = reader.GetValue(iter);
                  }
                  yield return dyn;
               }
            }
         }
      #>
  • 相关阅读:
    构建乘积数组
    数组中重复的数字
    把字符串转换成整数
    不用加减乘除做加法
    求1+2+3+...+n
    孩子们的游戏(圆圈中最后剩下的数)
    翻转单词顺序列
    扑克牌顺子
    左旋转字符串
    ES6必知必会 —— Module
  • 原文地址:https://www.cnblogs.com/flyfish2012/p/3909588.html
Copyright © 2011-2022 走看看