Skip to content

Commit 2f62f21

Browse files
CopilotAndriySvyryd
andcommitted
Fix Cosmos enum discriminator casting by using GetValueComparer instead of GetProviderValueComparer
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
1 parent ca4e604 commit 2f62f21

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

src/EFCore.Cosmos/Query/Internal/CosmosReadItemAndPartitionKeysExtractor.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -271,18 +271,12 @@ void ProcessPropertyComparison(string propertyName, SqlExpression propertyValue,
271271
if (propertyName == _discriminatorJsonPropertyName
272272
&& propertyValue is SqlConstantExpression { Value: { } specifiedDiscriminatorValue }
273273
&& _entityType.FindDiscriminatorProperty() is { } discriminatorProperty
274-
&& _entityType.GetDiscriminatorValue() is { } entityDiscriminatorValue)
274+
&& _entityType.GetDiscriminatorValue() is { } entityDiscriminatorValue
275+
&& discriminatorProperty.GetValueComparer().Equals(specifiedDiscriminatorValue, entityDiscriminatorValue))
275276
{
276-
// Convert the specified discriminator value to provider value for comparison if there's a value converter
277-
var convertedSpecifiedValue = discriminatorProperty.GetValueConverter()?.ConvertToProvider(specifiedDiscriminatorValue)
278-
?? specifiedDiscriminatorValue;
279-
280-
if (discriminatorProperty.GetProviderValueComparer().Equals(convertedSpecifiedValue, entityDiscriminatorValue))
281-
{
282-
// This is the case where there is a single leaf node with a discriminator value. We always know this value,
283-
// so the query never needs to drop out of ReadItem because of it.
284-
isCompatibleComparisonForReadItem = true;
285-
}
277+
// This is the case where there is a single leaf node with a discriminator value. We always know this value,
278+
// so the query never needs to drop out of ReadItem because of it.
279+
isCompatibleComparisonForReadItem = true;
286280
}
287281
else
288282
{

0 commit comments

Comments
 (0)