From 6f8749bc528b112ccfd1af73f3cfb29d6969032e Mon Sep 17 00:00:00 2001 From: nzdev <834725+nzdev@users.noreply.github.com> Date: Tue, 13 Jul 2021 19:55:45 +1200 Subject: [PATCH] Automatically intern contentType Alias and propertyType Alias when querying the database to save on memory and speed up comparisons. --- src/Umbraco.Core/Persistence/Dtos/ContentTypeDto.cs | 3 ++- src/Umbraco.Core/Persistence/Dtos/PropertyTypeDto.cs | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Dtos/ContentTypeDto.cs b/src/Umbraco.Core/Persistence/Dtos/ContentTypeDto.cs index 68036dab4b..58ecd0cd39 100644 --- a/src/Umbraco.Core/Persistence/Dtos/ContentTypeDto.cs +++ b/src/Umbraco.Core/Persistence/Dtos/ContentTypeDto.cs @@ -9,6 +9,7 @@ namespace Umbraco.Core.Persistence.Dtos internal class ContentTypeDto { public const string TableName = Constants.DatabaseSchema.Tables.ContentType; + private string _alias; [Column("pk")] [PrimaryKeyColumn(IdentitySeed = 700)] @@ -21,7 +22,7 @@ namespace Umbraco.Core.Persistence.Dtos [Column("alias")] [NullSetting(NullSetting = NullSettings.Null)] - public string Alias { get; set; } + public string Alias { get => _alias; set => _alias = value == null ? null : string.Intern(value); } [Column("icon")] [Index(IndexTypes.NonClustered)] diff --git a/src/Umbraco.Core/Persistence/Dtos/PropertyTypeDto.cs b/src/Umbraco.Core/Persistence/Dtos/PropertyTypeDto.cs index f22e4453f4..d5ce28d3b5 100644 --- a/src/Umbraco.Core/Persistence/Dtos/PropertyTypeDto.cs +++ b/src/Umbraco.Core/Persistence/Dtos/PropertyTypeDto.cs @@ -10,6 +10,8 @@ namespace Umbraco.Core.Persistence.Dtos [ExplicitColumns] internal class PropertyTypeDto { + private string _alias; + [Column("id")] [PrimaryKeyColumn(IdentitySeed = 100)] public int Id { get; set; } @@ -29,7 +31,7 @@ namespace Umbraco.Core.Persistence.Dtos [Index(IndexTypes.NonClustered, Name = "IX_cmsPropertyTypeAlias")] [Column("Alias")] - public string Alias { get; set; } + public string Alias { get => _alias; set => _alias = value == null ? null : string.Intern(value); } [Column("Name")] [NullSetting(NullSetting = NullSettings.Null)]