从数据库生成的枚举的集成测试

时间:2017-01-24 16:55:03

标签: c# t4

我使用t4模板从SQL数据库表生成枚举类型

CREATE TABLE dbo.Status(Id INT NOT NULL, 
[Name] NVARCHAR(MAX) NOT NULL)

T4模板

 public enum <#= tableName #>
{<#  
SqlConnection conn = new SqlConnection(connectionString);
string command = string.Format("select {0}, {1} from {2} order by {0}", columnId, columnName, tableName);
SqlCommand comm = new SqlCommand(command, conn);

conn.Open();

SqlDataReader reader = comm.ExecuteReader();
bool loop = reader.Read();

while(loop)
{#>         [Description("<#= reader[columnName] #>")]
    <#= Pascalize(reader[columnName]) #> = <#= reader[columnId] #><# loop = reader.Read(); #><#= loop ? "," : string.Empty #><#  
}#>  }

生成的枚举

[GeneratedCode("TextTemplatingFileGenerator", "10")]
public enum Status
{
    [Description("status1")]
    Placed = 0,
    [Description("status2")]
    Started = 1,
    [Description("status3")]
    Paused = 2,
    [Description("status4")]
    Approved = 3,
    [Description("status5")]
    Rejected = 4,
    [Description("status6")]
    Invoiced = 5,
}

有没有更好的方法来编写整数测试,它会告诉我数据库值和c#enum是否不同步?

0 个答案:

没有答案