diff --git a/src/Squidex.Domain.Apps.Core/Schemas/EdmExtensions.cs b/src/Squidex.Domain.Apps.Core/Schemas/EdmExtensions.cs new file mode 100644 index 000000000..cbf737b59 --- /dev/null +++ b/src/Squidex.Domain.Apps.Core/Schemas/EdmExtensions.cs @@ -0,0 +1,23 @@ +// ========================================================================== +// EdmExtensions.cs +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex Group +// All rights reserved. +// ========================================================================== + +namespace Squidex.Domain.Apps.Core.Schemas +{ + public static class EdmExtensions + { + public static string EscapeEdmField(this string field) + { + return field.Replace("-", "_"); + } + + public static string UnescapeEdmField(this string field) + { + return field.Replace("_", "-"); + } + } +} diff --git a/src/Squidex.Domain.Apps.Core/Schemas/Field.cs b/src/Squidex.Domain.Apps.Core/Schemas/Field.cs index ea86d1a30..970ca5a5b 100644 --- a/src/Squidex.Domain.Apps.Core/Schemas/Field.cs +++ b/src/Squidex.Domain.Apps.Core/Schemas/Field.cs @@ -163,10 +163,8 @@ namespace Squidex.Domain.Apps.Core.Schemas { partitionType.AddStructuralProperty(partitionItem.Key, edmValueType); } - - var edmName = Name.Replace("-", "_"); - - edmType.AddStructuralProperty(edmName, new EdmComplexTypeReference(partitionType, false)); + + edmType.AddStructuralProperty(Name.EscapeEdmField(), new EdmComplexTypeReference(partitionType, false)); } public void AddToJsonSchema(JsonSchema4 schema, PartitionResolver partitionResolver, string schemaName, Func schemaResolver) diff --git a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/PropertyVisitor.cs b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/PropertyVisitor.cs index e1259d58c..b61cbfe62 100644 --- a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/PropertyVisitor.cs +++ b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/Visitors/PropertyVisitor.cs @@ -28,7 +28,7 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors if (propertyNames.Length == 3) { - var edmName = propertyNames[1].Replace("_", "-"); + var edmName = propertyNames[1].UnescapeEdmField(); if (!schema.FieldsByName.TryGetValue(edmName, out Field field)) {