T4產生資料庫實體類模板

來源:互聯網
上載者:User

<#@ template language="C#" debug="True" hostspecific="True" #>

<#@ output extension=".cs" #>

<#@ assembly name="System.Data" #>

 

<#@ assembly name="System.xml" #>

<#@ import namespace="System.Collections.Generic" #>

<#@ import namespace="System.Data.SqlClient" #>

<#@ import namespace="System.Data" #>

 using System;

namespace MyProject.Entities

{     

      <#

           string connectionString = "Data Source=qinyanlu;Initial Catalog=Develop_RegisterManager;Persist Security Info=True;User ID=sa;Password=sa;Max Pool Size=100;Min Pool Size=5;Pooling=true;";

           SqlConnection conn = new SqlConnection(connectionString);

           conn.Open();

           System.Data.DataTable schema = conn.GetSchema("TABLES");

           string selectQuery = "select * from @tableName";

           SqlCommand command = new SqlCommand(selectQuery,conn);

           SqlDataAdapter ad = new SqlDataAdapter(command);

           System.Data.DataSet ds = new DataSet();        

           foreach(System.Data.DataRow row in schema.Rows)

           {  #>  

           public class <#= row["TABLE_NAME"].ToString().Trim('s') #>                   

           {    <#                     

                   ds.Tables.Clear();

                  command.CommandText = selectQuery.Replace("@tableName",row["TABLE_NAME"].ToString());

                  ad.FillSchema(ds, SchemaType.Mapped, row["TABLE_NAME"].ToString());         

                  foreach (DataColumn dc in ds.Tables[0].Columns)

                  {    #>                    

                  private <#= dc.DataType.Name #> _<#= dc.ColumnName.Replace(dc.ColumnName[0].ToString(), dc.ColumnName[0].ToString().ToLower())      #>;                      

                  public <#= dc.DataType.Name #> <#= dc.ColumnName #>

                  {

                     get { return _<#= dc.ColumnName.Replace(dc.ColumnName[0].ToString(), dc.ColumnName[0].ToString().ToLower()) #>; }

                     set { _<#= dc.ColumnName.Replace(dc.ColumnName[0].ToString(), dc.ColumnName[0].ToString().ToLower()) #> = value; }

                  }                                                

              <# }  #>         

           }                  

           <#

           } #>                

}

 

 

 

 

產生資料庫實體類加註釋:

 

 

<#@ template language="C#" debug="True" hostspecific="True"#>
<#@ output extension=".cs"#>
<#@ assembly name="System.Data"#>
<#@ assembly name="System.xml"#>
<#@ import namespace="System.Collections.Generic"#>
<#@ import namespace="System.Data.SqlClient"#>
<#@ import namespace="System.Data"#>
using System;
namespace MyProject.Entities
{
<#
string connectionString="Data Source=qinyanlu;Initial Catalog=Develop_RegisterManager;PersistSecurityInfo=True;User ID=sa;Password=sa;Max Pool Size=100;Min Pool Size=5;Pooling=true;";
SqlConnection conn=new SqlConnection(connectionString);
conn.Open();
System.Data.DataTable schema=conn.GetSchema("TABLES");
string selectQuery="select * from @tableName";
SqlCommand command=new SqlCommand(selectQuery,conn);
SqlDataAdapter ad=new SqlDataAdapter(command);
System.Data.DataSet ds=new DataSet();
foreach(System.Data.DataRow row in schema.Rows)
{#>
public class <#=row["TABLE_NAME"].ToString()#>
{<#
ds.Tables.Clear();
command.CommandText=selectQuery.Replace("@tableName",row["TABLE_NAME"].ToString());
ad.FillSchema(ds,SchemaType.Mapped,row["TABLE_NAME"].ToString());
foreach(DataColumn dc in ds.Tables[0].Columns)
{#>
public <#=dc.DataType.Name#> <#=dc.ColumnName#>;<#
string selectBZ=@"SELECT isnull(SysProperties.Value,'') FROM SysObjects,SysTypes,SysColumns LEFT JOIN SysProperties ON (Syscolumns.Id = Sysproperties.Id AND Syscolumns.Colid = Sysproperties.Smallid)
 WHERE (Sysobjects.Xtype ='u' OR Sysobjects.Xtype ='v') AND Sysobjects.Id = Syscolumns.Id AND SysTypes.XType = Syscolumns.XType
 AND SysTypes.Name <> 'sysname' AND Sysobjects.Name = '@table' AND SysColumns.Name='@column'";
 selectBZ=selectBZ.Replace("@table",row["TABLE_NAME"].ToString());
 selectBZ=selectBZ.Replace("@column",dc.ColumnName);
 SqlCommand commandBZ=new SqlCommand(selectBZ,conn);
 string BZ=commandBZ.ExecuteScalar().ToString().Replace("/r/n","");
#><#if(BZ.Length>0){Write("/t/t/*"+BZ+"*/");}#>

<#

}#>}<#}#>
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.