本文来自:http://blog.okbase.net/haobao/archive/32.html

表格名称

<%@ property name="sourcetable" type="schemaexplorer.tableschema" category="1. context" description="table that the documentation should be based on." %>

<%=sourcetable%>

不含dbowner的表格名称

<%=sourcetable.name%>

将表中所有列名作为参数

void myfunction(<% for (int i = 0; i < sourcetable.columns.count; i ) { %><%=csharpalias[sourcetable.columns[i].systemtype.fullname]%> <%=sourcetable.columns[i].name%><% if (i < sourcetable.columns.count-1) { %>, <% } %><% } %>)

主键列名

sourcetable.primarykey.membercolumns[0].name

主键的sql数据类型

sourcetable.primarykey.membercolumns[0].nativetype

列名

sourcetable.columns[i].name

列的数据长度

sourcetable.columns[i].size

列的系统数据类型

sourcetable.columns[i].systemtype.fullname

sql本地数据类型转换到sqldbtype类型

<%@ map name="sqlnativesqldb" src="sqlnativetype-sqldbtype" description="sqlnativetype to sqldbtype map" %>

public string getsqldbtype(columnschema column)

{

return sqlnativesqldb[column.nativetype.tostring()];

}

自己写的方法:

getsqldbtype(sourcetable.columns[i])

public string getsqldbtype(columnschema column)

{

switch (column.nativetype.tolower())

{

case "bigint": return "sqldbtype.bigint";

case "binary": return "sqldbtype.binary";

case "bit": return "sqldbtype.bit";

case "char": return "sqldbtype.char";

case "datetime": return "sqldbtype.datetime";

case "decimal": return "sqldbtype.decimal";

case "float": return "sqldbtype.float";

case "image": return "sqldbtype.image";

case "int": return "sqldbtype.int";

case "money": return "sqldbtype.money";

case "nchar": return "sqldbtype.nchar";

case "ntext": return "sqldbtype.ntext";

case "numeric": return "sqldbtype.decimal";

case "nvarchar": return "sqldbtype.nvarchar";

case "real": return "sqldbtype.real";

case "smalldatetime": return "sqldbtype.smalldatetime";

case "smallint": return "sqldbtype.smallint";

case "smallmoney": return "sqldbtype.smallmoney";

case "sql_variant": return "sqldbtype.variant";

case "sysname": return "sqldbtype.nchar";

case "text": return "sqldbtype.text";

case "timestamp": return "sqldbtype.timestamp";

case "tinyint": return "sqldbtype.tinyint";

case "uniqueidentifier": return "sqldbtype.uniqueidentifier";

case "varbinary": return "sqldbtype.varbinary";

case "varchar": return "sqldbtype.varchar";

default: return "__unknown__" column.nativetype;

}

}

系统数据类型转换为c#数据类型

<%@ map name="csharpalias" src="system-csharpalias" description="system to c# type map" %>

csharpalias[sourcetable.columns[i].systemtype.fullname]

sql server数据类型转换到c#数据类型

<%@ map name="sqlcsharp" src="sql-csharp" description="sql server data type to c# data type map" %>

public string getcsharptype(columnschema column)

{

return sqlcsharp[column.nativetype.tostring()];

}

判断是否为自增长列

if( ((bool)sourcetable.columns[i].extendedproperties["cs_isidentity"].value) == true)

{

response.write(sourcetable.columns[i].name);

}

让codesmith支持中文

1)tools->options...->studio->editor->enable unicode support将这个选项勾上。

2)在模板文件的codetemplate声明中加上responseencoding="utf-8 "属性:

<%@ codetemplate responseencoding="utf-8" targetlanguage="text" src="" inherits="" debug="false" compilerversion="v3.5" description="template description here." %>

 

其它参考信息:

/r/n   /r是换行 /n是回车换行

schemaexplorer.tableschema类:是codesmith中自带的一个类,它描述表的结构。

name属性:表的名称

columns属性:表中列的集合

extendedproperties属性:表中指定列的扩展信息

foreignkeycolumns属性:表的一个外键列的集合

foreignkeys属性:表的外键集合

hasprimarykey属性:返回表中是否存在主键

nonforeignkeycolumns属性:表中非外键列的集合

nonkeycolumns属性:表中非外键,非主键列的集合

nonprimarykeycolumns属性:表中非主键列的集合

primarykey属性:表中的主键

表中指定列的扩展属性 (extendedproperties属性):

  cs_isidentity:自增长列

  cs_iscomputed :计算列

  cs_identityseed :自增长列的起始值

  cs_identityincrement :自增长列的步长

  cs_default :列的默认值

posted on 2012-12-23 15:12 sanmao 阅读(858) 评论(0)  编辑  收藏

只有注册用户后才能发表评论。


网站导航:
              
 

常用链接

留言簿(5)

codesmith 学习知识点 -凯发k8网页登录

搜索

  •  

最新评论

阅读排行榜

评论排行榜

网站地图