From 5d34d8b6a95a2d6c19c67ee03116c55c39ce5220 Mon Sep 17 00:00:00 2001 From: Xin Date: Tue, 3 Mar 2020 20:01:43 +0800 Subject: [PATCH] Add the nullable mark --- AutoGenDOTemplate.cst | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/AutoGenDOTemplate.cst b/AutoGenDOTemplate.cst index 64db644..9455b98 100644 --- a/AutoGenDOTemplate.cst +++ b/AutoGenDOTemplate.cst @@ -11,7 +11,7 @@ using System.Text; namespace <%=NameSpace%> { [Table("<%=SourceTable.Name %>")] - public class <%=GetClassName(SourceTable)+"DO" %> + public class <%=GetClassName(SourceTable) %> { <% foreach (ColumnSchema column in SourceTable.Columns) {%> /// @@ -110,39 +110,41 @@ public string GetPrimaryKeyType(TableSchema table) public string GetCSharpVariableType(ColumnSchema column) { if (column.Name.EndsWith("TypeCode")) return column.Name; - + var allowDBNullString = column.AllowDBNull ? "?":""; + switch (column.DataType) { case DbType.AnsiString: return "string"; case DbType.AnsiStringFixedLength: return "string"; case DbType.Binary: return "byte[]"; - case DbType.Boolean: return "bool"; - case DbType.Byte: return "byte"; - case DbType.Currency: return "decimal"; - case DbType.Date: return "DateTime"; - case DbType.DateTime: return "DateTime"; - case DbType.Decimal: return "decimal"; - case DbType.Double: return "double"; + case DbType.Boolean: return "bool" + allowDBNullString; + case DbType.Byte: return "byte" + allowDBNullString; + case DbType.Currency: return "decimal" + allowDBNullString; + case DbType.Date: return "DateTime" + allowDBNullString; + case DbType.DateTime: return "DateTime" + allowDBNullString; + case DbType.Decimal: return "decimal" + allowDBNullString; + case DbType.Double: return "double" + allowDBNullString; case DbType.Guid: return "Guid"; - case DbType.Int16: return "short"; - case DbType.Int32: return "int"; - case DbType.Int64: return "long"; + case DbType.Int16: return "short" + allowDBNullString; + case DbType.Int32: return "int" + allowDBNullString; + case DbType.Int64: return "long" + allowDBNullString; case DbType.Object: return "object"; - case DbType.SByte: return "sbyte"; - case DbType.Single: return "float"; + case DbType.SByte: return "sbyte" + allowDBNullString; + case DbType.Single: return "float" + allowDBNullString; case DbType.String: return "string"; case DbType.StringFixedLength: return "string"; - case DbType.Time: return "TimeSpan"; - case DbType.UInt16: return "ushort"; - case DbType.UInt32: return "uint"; - case DbType.UInt64: return "ulong"; - case DbType.VarNumeric: return "decimal"; + case DbType.Time: return "TimeSpan" + allowDBNullString; + case DbType.UInt16: return "ushort" + allowDBNullString; + case DbType.UInt32: return "uint" + allowDBNullString; + case DbType.UInt64: return "ulong" + allowDBNullString; + case DbType.VarNumeric: return "decimal" + allowDBNullString; default: { - return "__UNKNOWN__" + column.NativeType; + return "__UNKNOWN__" + column.NativeType + allowDBNullString; } } } + public override string GetFileName() { return GetClassName(SourceTable) + ".cs";