我有以下代码,它是对大括号和东西给予相关。

<#@ 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" #>

namespace MyProject.Entities 
{   
    public class     
    {
        <#
        string connectionString = 
            "Server=localhost;Database=GridViewGuy;Trusted_Connection=true"; 
        SqlConnection conn = new SqlConnection(connectionString); 
        conn.Open(); 
        System.Data.DataTable schema = conn.GetSchema("TABLES"); 

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

        #> 

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


        {

        }               

        } 

    }   

}

任何人都可以发现的问题?

有帮助吗?

解决方案

为什么不编译的原因是因为你没有对<# #>标签内的foreach块对应的右大括号。你需要做以下变化:

foreach(System.Data.DataRow row in schema.Rows)                 
{                 
#>                 
  public class <#= row["TABLE_NAME"].ToString()#> 
  {                
  } 
<#
  } //this was missing.
#> 

此外,请记住,您的代码将创建一个类没有名字,然后嵌套类与表的名称的列表。像这样:

public class
{
  public class Table1
  {
  }

  public class Table2
  {
  }
  //... and so on..
}

这可能不是你所要完成的是什么。

其他提示

在第一个块中,在开始代码块

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

            #> 

,但从来没有终止它。下面的某个地方,你需要这样的:

            <# } #>

修改 - 它看起来将是右大括号正下方的嵌套类定义

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top