Add varchar(max) support in DTO attributes

[SpecialDbType(SpecialDbTypes.NVARCHARMAX)]
This commit is contained in:
Jose Marcenaro
2020-04-28 21:36:11 -03:00
committed by Sebastiaan Janssen
parent c1e2f8f974
commit 8a6d2cc3b0
4 changed files with 17 additions and 1 deletions

View File

@@ -7,6 +7,7 @@
public enum SpecialDbTypes
{
NTEXT,
NCHAR
NCHAR,
NVARCHARMAX
}
}

View File

@@ -79,6 +79,9 @@ namespace Umbraco.Core.Persistence
case SpecialDbTypes.NCHAR:
sqlDbType = SqlDbType.NChar;
break;
case SpecialDbTypes.NVARCHARMAX:
sqlDbType = SqlDbType.NVarChar;
break;
default:
throw new ArgumentOutOfRangeException();
}

View File

@@ -231,5 +231,11 @@ where table_name=@0 and column_name=@1", tableName, columnName).FirstOrDefault()
public override string DropIndex { get { return "DROP INDEX {1}.{0}"; } }
public override string GetSpecialDbType(SpecialDbTypes dbTypes)
{
if (dbTypes == SpecialDbTypes.NVARCHARMAX) // SqlCE does not have nvarchar(max) for now
return "NTEXT";
return base.GetSpecialDbType(dbTypes);
}
}
}

View File

@@ -196,7 +196,13 @@ namespace Umbraco.Core.Persistence.SqlSyntax
return "NCHAR";
}
else if (dbTypes == SpecialDbTypes.NTEXT)
{
return "NTEXT";
}
else if (dbTypes == SpecialDbTypes.NVARCHARMAX)
{
return "NVARCHAR(MAX)";
}
return "NVARCHAR";
}