我使用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是否不同步?