任何开源代码生成工具或O/RM都应该有一个字典或函数来从sqldbtype映射到.NET类型并返回。例如,来自
Data Tier Generator
:
internal static string GetCsType(Column column)
{
switch (column.Type.ToLower())
{
case "binary":
return "byte[]";
case "bigint":
return "long";
case "bit":
return "bool";
case "char":
return "string";
case "datetime":
return "DateTime";
case "decimal":
return "decimal";
case "float":
return "float";
case "image":
return "byte[]";
case "int":
return "int";
case "money":
return "decimal";
case "nchar":
return "string";
case "ntext":
return "string";
case "nvarchar":
return "string";
case "numeric":
return "decimal";
case "real":
return "decimal";
case "smalldatetime":
return "DateTime";
case "smallint":
return "short";
case "smallmoney":
return "float";
case "sql_variant":
return "byte[]";
case "sysname":
return "string";
case "text":
return "string";
case "timestamp":
return "DateTime";
case "tinyint":
return "byte";
case "varbinary":
return "byte[]";
case "varchar":
return "string";
case "uniqueidentifier":
return "Guid";
default: // Unknow data type
throw (new Exception("Invalid SQL Server data type specified: " + column.Type));
}
}