diff --git a/src/Umbraco.Core/Models/Rdbms/AppDto.cs b/src/Umbraco.Core/Models/Rdbms/AppDto.cs index 45ee497654..797b10729a 100644 --- a/src/Umbraco.Core/Models/Rdbms/AppDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/AppDto.cs @@ -10,7 +10,7 @@ namespace Umbraco.Core.Models.Rdbms { [Column("appAlias")] [PrimaryKeyColumn(AutoIncrement = false, Clustered = true)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string AppAlias { get; set; } [Column("appIcon")] diff --git a/src/Umbraco.Core/Models/Rdbms/ContentTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/ContentTypeDto.cs index 94d997e259..367df0c41a 100644 --- a/src/Umbraco.Core/Models/Rdbms/ContentTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/ContentTypeDto.cs @@ -32,7 +32,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("description")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1500)] + [Length(1500)] public string Description { get; set; } [Column("isContainer")] diff --git a/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs index 752fec08e5..0a820ea216 100644 --- a/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DataTypeDto.cs @@ -22,8 +22,8 @@ namespace Umbraco.Core.Models.Rdbms public Guid ControlId { get; set; } [Column("dbType")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)]//NOTE Is set to [varchar] (50) in Sql Server script - public string DbType { get; set; } + [Length(50)] + public string DbType { get; set; }//NOTE Is set to [varchar] (50) in Sql Server script [ResultColumn] public NodeDto NodeDto { get; set; } diff --git a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs index 17271ced7b..7546c6faef 100644 --- a/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DataTypePreValueDto.cs @@ -18,7 +18,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("value")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 2500)] + [Length(2500)] public string Value { get; set; } [Column("sortorder")] @@ -26,7 +26,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("alias")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string Alias { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/DictionaryDto.cs b/src/Umbraco.Core/Models/Rdbms/DictionaryDto.cs index 9dcc99ed9c..c1cbc1b9ad 100644 --- a/src/Umbraco.Core/Models/Rdbms/DictionaryDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DictionaryDto.cs @@ -22,7 +22,7 @@ namespace Umbraco.Core.Models.Rdbms public Guid Parent { get; set; } [Column("key")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] public string Key { get; set; } [ResultColumn] diff --git a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs index 9b2fe35176..d1fdc496a3 100644 --- a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs @@ -26,7 +26,6 @@ namespace Umbraco.Core.Models.Rdbms public Guid VersionId { get; set; } [Column("text")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 255)] public string Text { get; set; } [Column("releaseDate")] @@ -48,7 +47,6 @@ namespace Umbraco.Core.Models.Rdbms [Column("alias")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 255)] public string Alias { get; set; } [Column("newest")] diff --git a/src/Umbraco.Core/Models/Rdbms/LanguageDto.cs b/src/Umbraco.Core/Models/Rdbms/LanguageDto.cs index 1c0f6e27e8..7599e48115 100644 --- a/src/Umbraco.Core/Models/Rdbms/LanguageDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/LanguageDto.cs @@ -15,12 +15,12 @@ namespace Umbraco.Core.Models.Rdbms [Column("languageISOCode")] [Index(IndexTypes.UniqueNonClustered)] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 10)] + [Length(10)] public string IsoCode { get; set; } [Column("languageCultureName")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 100)] + [Length(100)] public string CultureName { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/LanguageTextDto.cs b/src/Umbraco.Core/Models/Rdbms/LanguageTextDto.cs index a79cb25067..d062df4eae 100644 --- a/src/Umbraco.Core/Models/Rdbms/LanguageTextDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/LanguageTextDto.cs @@ -21,7 +21,7 @@ namespace Umbraco.Core.Models.Rdbms public Guid UniqueId { get; set; } [Column("value")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] public string Value { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/LogDto.cs b/src/Umbraco.Core/Models/Rdbms/LogDto.cs index ab257f7ada..3c2a6a61a5 100644 --- a/src/Umbraco.Core/Models/Rdbms/LogDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/LogDto.cs @@ -25,12 +25,12 @@ namespace Umbraco.Core.Models.Rdbms public DateTime Datestamp { get; set; } [Column("logHeader")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string Header { get; set; } [Column("logComment")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 4000)] + [Length(4000)] public string Comment { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs b/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs index 2512832c9b..729d0d97f3 100644 --- a/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/MacroPropertyDto.cs @@ -29,7 +29,7 @@ namespace Umbraco.Core.Models.Rdbms public byte SortOrder { get; set; } [Column("macroPropertyAlias")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string Alias { get; set; } [Column("macroPropertyName")] diff --git a/src/Umbraco.Core/Models/Rdbms/MacroPropertyTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/MacroPropertyTypeDto.cs index 24df806441..d1f926c230 100644 --- a/src/Umbraco.Core/Models/Rdbms/MacroPropertyTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/MacroPropertyTypeDto.cs @@ -13,7 +13,7 @@ namespace Umbraco.Core.Models.Rdbms public short Id { get; set; } [Column("macroPropertyTypeAlias")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] [NullSetting(NullSetting = NullSettings.Null)] public string Alias { get; set; } diff --git a/src/Umbraco.Core/Models/Rdbms/MemberDto.cs b/src/Umbraco.Core/Models/Rdbms/MemberDto.cs index dfe24fd8ef..32e03f75d0 100644 --- a/src/Umbraco.Core/Models/Rdbms/MemberDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/MemberDto.cs @@ -15,17 +15,17 @@ namespace Umbraco.Core.Models.Rdbms public int NodeId { get; set; } [Column("Email")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] [Constraint(Default = "''")] public string Email { get; set; } [Column("LoginName")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] [Constraint(Default = "''")] public string LoginName { get; set; } [Column("Password")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] [Constraint(Default = "''")] public string Password { get; set; } } diff --git a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs index 152cdb99f0..a75a240311 100644 --- a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs @@ -35,7 +35,7 @@ namespace Umbraco.Core.Models.Rdbms public short Level { get; set; } [Column("path")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 150)] + [Length(150)] public string Path { get; set; } [Column("sortOrder")] diff --git a/src/Umbraco.Core/Models/Rdbms/PreviewXmlDto.cs b/src/Umbraco.Core/Models/Rdbms/PreviewXmlDto.cs index d6f99f6c17..20a3d1d532 100644 --- a/src/Umbraco.Core/Models/Rdbms/PreviewXmlDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/PreviewXmlDto.cs @@ -22,7 +22,7 @@ namespace Umbraco.Core.Models.Rdbms public DateTime Timestamp { get; set; } [Column("xml")] - [DatabaseType(SpecialDbTypes.NTEXT)] + [SpecialDbType(SpecialDbTypes.NTEXT)] public string Xml { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs index 345e88ec8f..ee973862af 100644 --- a/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/PropertyDataDto.cs @@ -39,12 +39,12 @@ namespace Umbraco.Core.Models.Rdbms [Column("dataNvarchar")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 500)] + [Length(500)] public string VarChar { get; set; } [Column("dataNtext")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NTEXT)] + [SpecialDbType(SpecialDbTypes.NTEXT)] public string Text { get; set; } [ResultColumn] diff --git a/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs index 4567470bc0..8662284508 100644 --- a/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/PropertyTypeDto.cs @@ -34,7 +34,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("helpText")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] public string HelpText { get; set; } [Column("sortOrder")] @@ -51,7 +51,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("Description")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 2000)] + [Length(2000)] public string Description { get; set; } [ResultColumn] diff --git a/src/Umbraco.Core/Models/Rdbms/RelationDto.cs b/src/Umbraco.Core/Models/Rdbms/RelationDto.cs index a89d6df575..e204e42040 100644 --- a/src/Umbraco.Core/Models/Rdbms/RelationDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/RelationDto.cs @@ -30,7 +30,7 @@ namespace Umbraco.Core.Models.Rdbms public DateTime Datetime { get; set; } [Column("comment")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 1000)] + [Length(1000)] public string Comment { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/RelationTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/RelationTypeDto.cs index c70cea9fae..ffa65948be 100644 --- a/src/Umbraco.Core/Models/Rdbms/RelationTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/RelationTypeDto.cs @@ -27,7 +27,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("alias")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 100)] + [Length(100)] public string Alias { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs b/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs index f1801b3912..23ba061b9b 100644 --- a/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/StylesheetDto.cs @@ -14,11 +14,11 @@ namespace Umbraco.Core.Models.Rdbms public int NodeId { get; set; } [Column("filename")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 100)] + [Length(100)] public string Filename { get; set; } [Column("content")] - [DatabaseType(SpecialDbTypes.NTEXT)] + [SpecialDbType(SpecialDbTypes.NTEXT)] [NullSetting(NullSetting = NullSettings.Null)] public string Content { get; set; } } diff --git a/src/Umbraco.Core/Models/Rdbms/StylesheetPropertyDto.cs b/src/Umbraco.Core/Models/Rdbms/StylesheetPropertyDto.cs index 898bc7e138..cfe3148764 100644 --- a/src/Umbraco.Core/Models/Rdbms/StylesheetPropertyDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/StylesheetPropertyDto.cs @@ -18,12 +18,12 @@ namespace Umbraco.Core.Models.Rdbms [Column("stylesheetPropertyAlias")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string Alias { get; set; } [Column("stylesheetPropertyValue")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 400)] + [Length(400)] public string Value { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/TagDto.cs b/src/Umbraco.Core/Models/Rdbms/TagDto.cs index 1550ffc3cc..7b746c14cd 100644 --- a/src/Umbraco.Core/Models/Rdbms/TagDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/TagDto.cs @@ -14,8 +14,8 @@ namespace Umbraco.Core.Models.Rdbms [Column("tag")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 200)]//NOTE Is set to [varchar] (200) in Sql Server script - public string Tag { get; set; } + [Length(200)] + public string Tag { get; set; }//NOTE Is set to [varchar] (200) in Sql Server script [Column("ParentId")] [NullSetting(NullSetting = NullSettings.Null)] @@ -23,7 +23,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("group")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 100)]//NOTE Is set to [varchar] (100) in Sql Server script - public string Group { get; set; } + [Length(100)] + public string Group { get; set; }//NOTE Is set to [varchar] (100) in Sql Server script } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs index 585f0b5757..4c38197d67 100644 --- a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs @@ -39,7 +39,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("Comment")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 500)] + [Length(500)] public string Comment { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs b/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs index cee904097c..84efe570b0 100644 --- a/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/TemplateDto.cs @@ -23,12 +23,12 @@ namespace Umbraco.Core.Models.Rdbms public int? Master { get; set; } [Column("alias")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 100)] + [Length(100)] [NullSetting(NullSetting = NullSettings.Null)] public string Alias { get; set; } [Column("design")] - [DatabaseType(SpecialDbTypes.NTEXT)] + [SpecialDbType(SpecialDbTypes.NTEXT)] public string Design { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/User2AppDto.cs b/src/Umbraco.Core/Models/Rdbms/User2AppDto.cs index 64e2e39d07..57ab00a3a3 100644 --- a/src/Umbraco.Core/Models/Rdbms/User2AppDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/User2AppDto.cs @@ -14,7 +14,7 @@ namespace Umbraco.Core.Models.Rdbms public int UserId { get; set; } [Column("app")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string AppAlias { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs b/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs index 30202b5202..2163ca32c3 100644 --- a/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/User2NodeNotifyDto.cs @@ -18,7 +18,8 @@ namespace Umbraco.Core.Models.Rdbms public int NodeId { get; set; } [Column("action")] - [DatabaseType(SpecialDbTypes.NCHAR, Length = 1)] + [SpecialDbType(SpecialDbTypes.NCHAR)] + [Length(1)] public string Action { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Rdbms/UserDto.cs b/src/Umbraco.Core/Models/Rdbms/UserDto.cs index 1e054eb819..96c39f02cd 100644 --- a/src/Umbraco.Core/Models/Rdbms/UserDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/UserDto.cs @@ -35,12 +35,12 @@ namespace Umbraco.Core.Models.Rdbms public string UserName { get; set; } [Column("userLogin")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 125)] + [Length(125)] [Index(IndexTypes.NonClustered)] public string Login { get; set; } [Column("userPassword")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 125)] + [Length(125)] public string Password { get; set; } [Column("userEmail")] @@ -48,12 +48,12 @@ namespace Umbraco.Core.Models.Rdbms [Column("userDefaultPermissions")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] public string DefaultPermissions { get; set; } [Column("userLanguage")] [NullSetting(NullSetting = NullSettings.Null)] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 10)] + [Length(10)] public string UserLanguage { get; set; } [Column("defaultToLiveEditing")] diff --git a/src/Umbraco.Core/Models/Rdbms/UserTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/UserTypeDto.cs index 3c46e92fdd..fee220a60e 100644 --- a/src/Umbraco.Core/Models/Rdbms/UserTypeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/UserTypeDto.cs @@ -13,7 +13,7 @@ namespace Umbraco.Core.Models.Rdbms public short Id { get; set; } [Column("userTypeAlias")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] [NullSetting(NullSetting = NullSettings.Null)] public string Alias { get; set; } @@ -21,7 +21,7 @@ namespace Umbraco.Core.Models.Rdbms public string Name { get; set; } [Column("userTypeDefaultPermissions")] - [DatabaseType(SpecialDbTypes.NVARCHAR, Length = 50)] + [Length(50)] [NullSetting(NullSetting = NullSettings.Null)] public string DefaultPermissions { get; set; } } diff --git a/src/Umbraco.Core/Persistence/DatabaseAnnotations/DatabaseTypeAttribute.cs b/src/Umbraco.Core/Persistence/DatabaseAnnotations/DatabaseTypeAttribute.cs deleted file mode 100644 index cd40b91b8c..0000000000 --- a/src/Umbraco.Core/Persistence/DatabaseAnnotations/DatabaseTypeAttribute.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace Umbraco.Core.Persistence.DatabaseAnnotations -{ - [AttributeUsage(AttributeTargets.Property)] - public class DatabaseTypeAttribute : Attribute - { - public DatabaseTypeAttribute(SpecialDbTypes databaseType) - { - DatabaseType = databaseType; - } - - public SpecialDbTypes DatabaseType { get; set; } - public int Length { get; set; } - } -} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/DatabaseAnnotations/LengthAttribute.cs b/src/Umbraco.Core/Persistence/DatabaseAnnotations/LengthAttribute.cs new file mode 100644 index 0000000000..8180fd762c --- /dev/null +++ b/src/Umbraco.Core/Persistence/DatabaseAnnotations/LengthAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace Umbraco.Core.Persistence.DatabaseAnnotations +{ + [AttributeUsage(AttributeTargets.Property)] + public class LengthAttribute : Attribute + { + public LengthAttribute(int length) + { + Length = length; + } + + public int Length { get; private set; } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/DatabaseAnnotations/SpecialDbTypeAttribute.cs b/src/Umbraco.Core/Persistence/DatabaseAnnotations/SpecialDbTypeAttribute.cs new file mode 100644 index 0000000000..a2672773de --- /dev/null +++ b/src/Umbraco.Core/Persistence/DatabaseAnnotations/SpecialDbTypeAttribute.cs @@ -0,0 +1,15 @@ +using System; + +namespace Umbraco.Core.Persistence.DatabaseAnnotations +{ + [AttributeUsage(AttributeTargets.Property)] + public class SpecialDbTypeAttribute : Attribute + { + public SpecialDbTypeAttribute(SpecialDbTypes databaseType) + { + DatabaseType = databaseType; + } + + public SpecialDbTypes DatabaseType { get; private set; } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/SqlSyntax/ModelDefinitions/DefinitionFactory.cs b/src/Umbraco.Core/Persistence/SqlSyntax/ModelDefinitions/DefinitionFactory.cs index 8bcfa12b4d..c9a5a8e4e0 100644 --- a/src/Umbraco.Core/Persistence/SqlSyntax/ModelDefinitions/DefinitionFactory.cs +++ b/src/Umbraco.Core/Persistence/SqlSyntax/ModelDefinitions/DefinitionFactory.cs @@ -31,14 +31,17 @@ namespace Umbraco.Core.Persistence.SqlSyntax.ModelDefinitions }; //Look for specific DbType attributed a column - var databaseTypeAttribute = propertyInfo.FirstAttribute(); + var databaseTypeAttribute = propertyInfo.FirstAttribute(); if (databaseTypeAttribute != null) { columnDefinition.HasSpecialDbType = true; columnDefinition.DbType = databaseTypeAttribute.DatabaseType; + } - if (databaseTypeAttribute.Length > 0) - columnDefinition.DbTypeLength = databaseTypeAttribute.Length; + var lengthAttribute = propertyInfo.FirstAttribute(); + if(lengthAttribute != null) + { + columnDefinition.DbTypeLength = lengthAttribute.Length; } //Look for specific Null setting attributed a column diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 838020a824..efd33c9994 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -105,7 +105,8 @@ - + +