123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <#@ template debug="false" hostspecific="true" language="C#" #>
- <#@ assembly name="System.Data" #>
- <#@ assembly name="System.xml" #>
- <#@ import namespace="System.Collections.Generic" #>
- <#@ import namespace="System.Data.SqlClient" #>
- <#@ import namespace="System.Data" #>
- <#@ import namespace="System.Text.RegularExpressions" #>
- <#@ assembly name="System.Core" #>
- <#@ import namespace="System.Linq" #>
- // 导入MultipleOutputHelper.ttinclude文件
- <#@ include file="..\MultipleOutputHelper.ttinclude" #>
- <#
- string connectionString=@"Server=192.168.0.240; Database=NXDynamic; user Id=sa;password=1q2w3e4r!@";
- SqlConnection conn = new SqlConnection(connectionString);
- conn.Open();
-
- string selectQuery ="SET FMTONLY ON; select * from @tableName; SET FMTONLY OFF;";
- SqlCommand command = new SqlCommand(selectQuery,conn);
- SqlDataAdapter ad = new SqlDataAdapter(command);
- System.Data.DataSet ds = new DataSet();
-
- var manager = Manager.Create(Host, GenerationEnvironment);
- string[] restrictions = new string[4];
- restrictions[1] = "dbo";
- restrictions[3] = "BASE TABLE";
- System.Data.DataTable schema = conn.GetSchema("Tables",restrictions);
- foreach(System.Data.DataRow row in schema.Rows)
- {
- ds.Tables.Clear();
- string tb_name= row["TABLE_NAME"].ToString();
- command.CommandText = selectQuery.Replace("@tableName",row["TABLE_NAME"].ToString());
- ad.FillSchema(ds, SchemaType.Mapped,tb_name);
- manager.StartNewFile(tb_name+".cs");#>
- using System;
- using System.Collections.Generic;
- using System.Runtime.Serialization;
- using DapperORMCore.Dapper;
- namespace NXWMS.DynamicDataAccess.BLL
- {
- /// <summary>
- /// 实体-<#=tb_name#>
- /// </summary>
- public partial class <#=tb_name#> : IEntity
- {
- <#
- PushIndent(" ");
- Regex reg = new Regex("^[0-9]+$");
- foreach (DataColumn dc in ds.Tables[0].Columns)
- {
- //ADP表结构设计真乱,还有用111作为列头的? 还有用相同列名为表名的
- Match ma=reg.Match(dc.ColumnName);
- if(!ma.Success && tb_name!=dc.ColumnName)
- {
- WriteLine("public " + dc.DataType.Name+ (dc.AllowDBNull && (dc.DataType.Name.ToLower() != "string" &&
- dc.DataType.Name.ToLower() != "byte[]") ? "? ": " ") + dc.ColumnName + " { get; set; }");
- }
- }
- PopIndent();
- #>
- }
- }
-
- <#
- manager.EndBlock();
- }
- conn.Close();
- manager.Process(true);
- #>
|