使用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;
           }
        }
     }
  #>

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

时间: 2024-11-08 14:10:39

使用T4模板调用Sqlserver链接生成自己的模板的相关文章

基于T4模板的文档生成

看了好几个代码自动生成的工具,用起来很方便,但有些方面还是不够自由:这些日子里忙里偷闲摸索了一番,个人觉的基于T4模板的代码生成方案还是不错的. 下面就看看这个T4到底是什么东东-- T4 = Text Template Transformation Toolkit 不知道电脑前的你是否接触过Asp或jsp之类的动态网页编程语言,个人感觉就和那些动态网页的的编写思路差不多只不过那些编译前是*.asp.*.aspx,或*.jsp,这个T4编译前是的扩展名是tt(*.tt) 先看一个简单的tt文件

T4模板_根据DB生成实体类

为了减少重复劳动,可以通过T4读取数据库表结构,生成实体类,用下面的实例测试了一下 1.首先创建一个项目,并添加文本模板: 2.添加 文本模板: 3.向T4文本模板文件添加代码: <#@ template language="C#" debug="True" hostspecific="True" #> <#@ assembly name="System.Data" #> <#@ assembly

易企CMS模板调用标签列表

格式化URL formaturl 参数:type (生成URL类型) 可选值:article,product,category,catalog,comment参数:siteurl (生成URL网站地址)参数:name (生成URL文件名称)模板调用方法{formaturl type="article" siteurl=$siteurl name="about"}说明:生成文章文件名称为about的URL. 文章功能类 articledata GetArticle (

链接生成接口

链接生成接口 近日公司需要用到短链接,遂想是否可以找个现成的生成接口来用,于是乎就去摆渡,目前有百度家的短链接和新浪家的短链接,不巧的是百度家的短链竟然不支持我们这个长链接的生成,难道是因为传入的长链接参数是一个guid数字太长的原因?反正搞不懂为啥这么坑爹,没办法只能用新浪喽.尼玛查看了接口介绍才发现不能愉快的玩耍了.我只是想生成个短链而已,为啥这么坑爹要求登录还传入各种参数?继续摆渡看了第三方封装的,发现至少都要登陆,就没有一个简单共别人使用的,这里就想问下那些提供商就不能秉承共享精神,免费

最新织梦dedecms模板调用标签大全(适用dedecms5.7)

织梦DEDE模板调用标签大全-提高制作模板速度--------------------------------------------------------------------------------关键描述调用标签: <meta name="keywords" content="{dede:field name='keywords'/}"><meta name="description" content="{d

浅谈Windows平台下C++调用静态链接库的方式

浅谈Windows平台下C++调用静态链接库的方式 1. 什么是静态链接库?为什么要用静态链接库? 维基百科上关于静态库的解释是这样的:在计算机科学里,静态库(英语:Static library, Statically-linked library),或称静态库,是一个外部函数与变量的集合体.静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与连接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件. 由上面的解释可以很清楚的看

织梦dedecms模板调用标签大全-提高制作模板速度

关键描述调用标签: ——————————————————————————–模板路径调用标签: {dede:field name=’templeturl’/}——————————————————————————–网站标题调用标签: {dede:global name=’cfg_webname’/}——————————————————————————–栏目导航调用标签: 1234 <a href="/">首页</a></li>{dede:channel

CI控制器调用内部方法并载入相应模板的做法

当我打开链接:http://localhost/3g/index/open/a/b?from=timeline后,判断链接中的from是否等于timeline,如果等于timeline,那么就调用控制器内部的timeline方法,并载入timeline.php这个模板. class Index extends CI_Controller { function __construct() { parent::__construct(); } public function open($a=0,$b

Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指EF中是不能调用sqlserver里的方法的. 因为之前搞过linq to sql 里面的SqlMethod ,所以觉得EF里面必须是可以的. 首先需要简短介绍一下EF6和EF5,当你NuGet一个EF5的包的时候,只有EntityFramework,而EF6确有EntityFramework和EntityFramework.SqlServer, 这2者是有很大区别的. 在EF5环境下,