码迷,mamicode.com
首页 > 数据库 > 详细

使用T4模板调用Sqlserver链接生成自己的模板

时间:2014-08-13 12:44:16      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   for   ar   

<#@ 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;
           }
        }
     }
  #>

 

使用T4模板调用Sqlserver链接生成自己的模板,布布扣,bubuko.com

使用T4模板调用Sqlserver链接生成自己的模板

标签:style   blog   color   使用   os   io   for   ar   

原文地址:http://www.cnblogs.com/flyfish2012/p/3909588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!