• 使用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;
               }
            }
         }
      #>
  • 相关阅读:
    分享8个超棒的免费高质量图标搜索引擎
    分享25个几何元素在网页设计中的应用案例
    推荐16个国外的源码下载网站
    分享20佳好玩的 jQuery 游戏
    快手基于 Flink 的持续优化与实践
    我的2007
    安装GPhone SDK
    asp.net如何取得纯客户端控件的值
    1111
    .NET与java的MVC模式(2):struts2核心工作流程与原理
  • 原文地址:https://www.cnblogs.com/flyfish2012/p/3909588.html
Copyright © 2020-2023  润新知