如果我的Db架构中有n个表格,并且我想在我的Db中遍历所有表格并且创建 a .cs 文件为每个表,其中包含以下生成的代码:
public class TableName
{
private _tableName = "<%TableName%>" //This string will be generated by MyGeneration
// per each table
public string TableName {
get{ return _tableName; }
}
我的模板应该如何编写?
答案 0 :(得分:0)
之前我没有使用MyGeneration,但您可以使用CodeGenerator轻松完成此操作。模板看起来像这样:
<xsl:stylesheet version="1.0" xmlns:P="http://Schemas.QuantumConceptsCorp.com/CodeGenerator/Project.xsd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="P:Project">
<xsl:text>
namespace </xsl:text>
<xsl:value-of select="@RootNamespace"/>
<xsl:text>.DataObjects
{</xsl:text>
<xsl:for-each select="P:TableMappings/P:TableMapping[@Exclude='false']">
<xsl:text>
public partial class </xsl:text>
<xsl:value-of select="@ClassName"/>
<xsl:text>
{
private string TableName { get { return "</xsl:text>
<xsl:value-of select="@ClassName"/>
<xsl:text>"; } }
}
</xsl:text>
</xsl:template>
</xsl:stylesheet>
namespace [Your.Namespace]
{
public class [TableName1]
{
public string TableName { get { return "[TableName1]"; } }
}
//...other tables
public class [TableNameN]
{
public string TableName { get { return "[TableNameN]"; } }
}
}
编辑:你也可以让它为每个文件输出一个表 - 听起来就是你所追求的。