From cd6aebbb37b5fab31e7d886705850552e443b1db Mon Sep 17 00:00:00 2001 From: Morten Holt Date: Fri, 31 Oct 2025 15:06:50 +0100 Subject: [PATCH] FIX: Use StringColumnModel to wrap EntityAttribute of type EntityName --- .../Metadata/DataverseMetadataFetcher.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/DataverseProxyGenerator.Core/Metadata/DataverseMetadataFetcher.cs b/src/DataverseProxyGenerator.Core/Metadata/DataverseMetadataFetcher.cs index 1c7757e..f5e7bd0 100644 --- a/src/DataverseProxyGenerator.Core/Metadata/DataverseMetadataFetcher.cs +++ b/src/DataverseProxyGenerator.Core/Metadata/DataverseMetadataFetcher.cs @@ -220,6 +220,7 @@ private TableModel BuildTableModelFromMetadata(Dictionary BuildDecimalColumn(decAttr), DoubleAttributeMetadata dblAttr => BuildDoubleColumn(dblAttr), MoneyAttributeMetadata moneyAttr => BuildMoneyColumn(moneyAttr), + EnumAttributeMetadata enumAttribute when enumAttribute.AttributeType == AttributeTypeCode.EntityName => BuildStringColumn(enumAttribute), EnumAttributeMetadata enumAttr => BuildEnumColumn(enumAttr), LookupAttributeMetadata lookupAttr when lookupAttr.AttributeType == AttributeTypeCode.PartyList => BuildPartyListColumn(lookupAttr), LookupAttributeMetadata lookupAttr => BuildLookupColumn(lookupAttr), @@ -284,6 +285,14 @@ private void AddPrimaryIdColumn(TableModel table, EntityMetadata entityMetadata) MaxLength = attr.MaxLength, }; + private StringColumnModel BuildStringColumn(EnumAttributeMetadata attr) => new StringColumnModel + { + LogicalName = attr.LogicalName, + SchemaName = attr.SchemaName, + DisplayName = ApplyLabelMapping(attr.DisplayName?.UserLocalizedLabel?.Label ?? attr.LogicalName), + Description = ApplyLabelMapping(attr.Description?.UserLocalizedLabel?.Label ?? string.Empty), + }; + private MemoColumnModel BuildMemoColumn(MemoAttributeMetadata attr) => new MemoColumnModel { LogicalName = attr.LogicalName,