Skip to content

Fix #6604 EF complex type projection null comparison#9251

Closed
michaelstaib wants to merge 1 commit intomainfrom
mst/issue-6604
Closed

Fix #6604 EF complex type projection null comparison#9251
michaelstaib wants to merge 1 commit intomainfrom
mst/issue-6604

Conversation

@michaelstaib
Copy link
Copy Markdown
Member

Summary

  • add a regression test for projecting a non-null EF Core complex property
  • avoid emitting in-memory null guards for non-null value-object/complex-like reference properties
  • preserve existing guard behavior for nullable references and entity-like references with an identity member

Fixes #6604

Test Commands

  • Determining projects to restore...
    All projects are up-to-date for restore.
    GreenDonut.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Abstractions/bin/Debug/net10.0/GreenDonut.Abstractions.dll
    GreenDonut.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Abstractions/bin/Debug/net9.0/GreenDonut.Abstractions.dll
    HotChocolate.Utilities.Buffers -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Buffers/bin/Debug/net8.0/HotChocolate.Buffers.dll
    HotChocolate.Utilities.Tasks -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Tasks/bin/Debug/net10.0/HotChocolate.Utilities.Tasks.dll
    GreenDonut.Data.Primitives -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Primitives/bin/Debug/net10.0/GreenDonut.Data.Primitives.dll
    HotChocolate.Text.Json -> /workspaces/hc-3/src/HotChocolate/Json/src/Json/bin/Debug/net8.0/HotChocolate.Text.Json.dll
    CookieCrumble -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble/bin/Debug/net8.0/CookieCrumble.dll
    CookieCrumble -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble/bin/Debug/net10.0/CookieCrumble.dll
    HotChocolate.Caching.Memory -> /workspaces/hc-3/src/HotChocolate/Caching/src/Caching.Memory/bin/Debug/net10.0/HotChocolate.Caching.Memory.dll
    HotChocolate.Caching.Memory -> /workspaces/hc-3/src/HotChocolate/Caching/src/Caching.Memory/bin/Debug/net9.0/HotChocolate.Caching.Memory.dll
    HotChocolate.Features -> /workspaces/hc-3/src/HotChocolate/Core/src/Features/bin/Debug/net10.0/HotChocolate.Features.dll
    HotChocolate.Utilities.Buffers -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Buffers/bin/Debug/net10.0/HotChocolate.Buffers.dll
    HotChocolate.Text.Json -> /workspaces/hc-3/src/HotChocolate/Json/src/Json/bin/Debug/net10.0/HotChocolate.Text.Json.dll
    HotChocolate.Fusion.Language -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Language/bin/Debug/net10.0/HotChocolate.Fusion.Language.dll
    HotChocolate.Utilities.DependencyInjection -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.DependencyInjection/bin/Debug/net8.0/HotChocolate.Utilities.DependencyInjection.dll
    HotChocolate.Utilities.DependencyInjection -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.DependencyInjection/bin/Debug/net9.0/HotChocolate.Utilities.DependencyInjection.dll
    HotChocolate.Utilities.Base36 -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Base36/bin/Debug/net8.0/HotChocolate.Buffers.Text.dll
    HotChocolate.Features -> /workspaces/hc-3/src/HotChocolate/Core/src/Features/bin/Debug/net8.0/HotChocolate.Features.dll
    HotChocolate.Text.Json -> /workspaces/hc-3/src/HotChocolate/Json/src/Json/bin/Debug/net9.0/HotChocolate.Text.Json.dll
    GreenDonut.Data.Primitives -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Primitives/bin/Debug/net8.0/GreenDonut.Data.Primitives.dll
    HotChocolate.Features -> /workspaces/hc-3/src/HotChocolate/Core/src/Features/bin/Debug/net9.0/HotChocolate.Features.dll
    HotChocolate.Utilities.Buffers -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Buffers/bin/Debug/net9.0/HotChocolate.Buffers.dll
    CookieCrumble.Analyzers -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.Analyzers/bin/Debug/netstandard2.0/CookieCrumble.Analyzers.dll
    HotChocolate.Fusion.Language -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Language/bin/Debug/net9.0/HotChocolate.Fusion.Language.dll
    HotChocolate.Utilities.DependencyInjection -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.DependencyInjection/bin/Debug/net10.0/HotChocolate.Utilities.DependencyInjection.dll
    HotChocolate.Caching.Memory -> /workspaces/hc-3/src/HotChocolate/Caching/src/Caching.Memory/bin/Debug/net8.0/HotChocolate.Caching.Memory.dll
    HotChocolate.Utilities.Tasks -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Tasks/bin/Debug/net9.0/HotChocolate.Utilities.Tasks.dll
    GreenDonut.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Abstractions/bin/Debug/net8.0/GreenDonut.Abstractions.dll
    CookieCrumble -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble/bin/Debug/net9.0/CookieCrumble.dll
    HotChocolate.Fusion.Language -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Language/bin/Debug/net8.0/HotChocolate.Fusion.Language.dll
    HotChocolate.Utilities.Tasks -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Tasks/bin/Debug/net8.0/HotChocolate.Utilities.Tasks.dll
    HotChocolate.Utilities.Base36 -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Base36/bin/Debug/net9.0/HotChocolate.Buffers.Text.dll
    GreenDonut.Data.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Abstractions/bin/Debug/net10.0/GreenDonut.Data.Abstractions.dll
    HotChocolate.Utilities -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities/bin/Debug/net8.0/HotChocolate.Utilities.dll
    GreenDonut -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut/bin/Debug/net8.0/GreenDonut.dll
    HotChocolate.Language.SyntaxTree -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.SyntaxTree/bin/Debug/net9.0/HotChocolate.Language.SyntaxTree.dll
    GreenDonut.Data.Primitives -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Primitives/bin/Debug/net9.0/GreenDonut.Data.Primitives.dll
    CookieCrumble.Xunit -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.Xunit/bin/Debug/net8.0/CookieCrumble.Xunit.dll
    HotChocolate.Language.SyntaxTree -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.SyntaxTree/bin/Debug/net10.0/HotChocolate.Language.SyntaxTree.dll
    GreenDonut -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut/bin/Debug/net9.0/GreenDonut.dll
    GreenDonut -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut/bin/Debug/net10.0/GreenDonut.dll
    GreenDonut.Data.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Abstractions/bin/Debug/net8.0/GreenDonut.Data.Abstractions.dll
    HotChocolate.Language.SyntaxTree -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.SyntaxTree/bin/Debug/net8.0/HotChocolate.Language.SyntaxTree.dll
    CookieCrumble.Xunit -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.Xunit/bin/Debug/net9.0/CookieCrumble.Xunit.dll
    HotChocolate.Language.Visitors -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Visitors/bin/Debug/net9.0/HotChocolate.Language.Visitors.dll
    HotChocolate.Utilities.Base36 -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities.Base36/bin/Debug/net10.0/HotChocolate.Buffers.Text.dll
    HotChocolate.Utilities -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities/bin/Debug/net9.0/HotChocolate.Utilities.dll
    CookieCrumble.HotChocolate.Language -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate.Language/bin/Debug/net9.0/CookieCrumble.HotChocolate.Language.dll
    HotChocolate.Language.Utf8 -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Utf8/bin/Debug/net8.0/HotChocolate.Language.Utf8.dll
    CookieCrumble.HotChocolate.Language -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate.Language/bin/Debug/net8.0/CookieCrumble.HotChocolate.Language.dll
    GreenDonut.Data.Abstractions -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data.Abstractions/bin/Debug/net9.0/GreenDonut.Data.Abstractions.dll
    CookieCrumble.Xunit -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.Xunit/bin/Debug/net10.0/CookieCrumble.Xunit.dll
    GreenDonut.Data -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data/bin/Debug/net8.0/GreenDonut.Data.dll
    HotChocolate.Language.Visitors -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Visitors/bin/Debug/net8.0/HotChocolate.Language.Visitors.dll
    HotChocolate.Utilities -> /workspaces/hc-3/src/HotChocolate/Utilities/src/Utilities/bin/Debug/net10.0/HotChocolate.Utilities.dll
    GreenDonut.Data -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data/bin/Debug/net10.0/GreenDonut.Data.dll
    HotChocolate.Language.Visitors -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Visitors/bin/Debug/net10.0/HotChocolate.Language.Visitors.dll
    CookieCrumble.HotChocolate.Language -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate.Language/bin/Debug/net10.0/CookieCrumble.HotChocolate.Language.dll
    HotChocolate.Language.Utf8 -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Utf8/bin/Debug/net10.0/HotChocolate.Language.Utf8.dll
    HotChocolate.Language.Utf8 -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Utf8/bin/Debug/net9.0/HotChocolate.Language.Utf8.dll
    HotChocolate.Language.Web -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Web/bin/Debug/net8.0/HotChocolate.Language.Web.dll
    HotChocolate.Language -> /workspaces/hc-3/src/HotChocolate/Language/src/Language/bin/Debug/net8.0/HotChocolate.Language.dll
    GreenDonut.Data -> /workspaces/hc-3/src/GreenDonut/src/GreenDonut.Data/bin/Debug/net9.0/GreenDonut.Data.dll
    HotChocolate.Transport.Abstractions -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Abstractions/bin/Debug/net8.0/HotChocolate.Transport.Abstractions.dll
    HotChocolate.Language.Web -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Web/bin/Debug/net10.0/HotChocolate.Language.Web.dll
    HotChocolate.Language.Web -> /workspaces/hc-3/src/HotChocolate/Language/src/Language.Web/bin/Debug/net9.0/HotChocolate.Language.Web.dll
    HotChocolate.Transport.Http -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Http/bin/Debug/net8.0/HotChocolate.Transport.Http.dll
    HotChocolate.Language -> /workspaces/hc-3/src/HotChocolate/Language/src/Language/bin/Debug/net10.0/HotChocolate.Language.dll
    HotChocolate.Primitives -> /workspaces/hc-3/src/HotChocolate/Primitives/src/Primitives/bin/Debug/net8.0/HotChocolate.Primitives.dll
    HotChocolate.Transport.Abstractions -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Abstractions/bin/Debug/net10.0/HotChocolate.Transport.Abstractions.dll
    HotChocolate.Language -> /workspaces/hc-3/src/HotChocolate/Language/src/Language/bin/Debug/net9.0/HotChocolate.Language.dll
    HotChocolate.Transport.Abstractions -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Abstractions/bin/Debug/net9.0/HotChocolate.Transport.Abstractions.dll
    HotChocolate.Primitives -> /workspaces/hc-3/src/HotChocolate/Primitives/src/Primitives/bin/Debug/net10.0/HotChocolate.Primitives.dll
    HotChocolate.Transport.Http -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Http/bin/Debug/net10.0/HotChocolate.Transport.Http.dll
    HotChocolate.Types.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.Abstractions/bin/Debug/net10.0/HotChocolate.Types.Abstractions.dll
    HotChocolate.Execution.Operation.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Operation.Abstractions/bin/Debug/net10.0/HotChocolate.Execution.Operation.Abstractions.dll
    HotChocolate.Transport.Http -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Http/bin/Debug/net9.0/HotChocolate.Transport.Http.dll
    HotChocolate.Types.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.Abstractions/bin/Debug/net8.0/HotChocolate.Types.Abstractions.dll
    HotChocolate.Primitives -> /workspaces/hc-3/src/HotChocolate/Primitives/src/Primitives/bin/Debug/net9.0/HotChocolate.Primitives.dll
    HotChocolate.Execution.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Abstractions/bin/Debug/net10.0/HotChocolate.Execution.Abstractions.dll
    HotChocolate.Execution.Operation.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Operation.Abstractions/bin/Debug/net8.0/HotChocolate.Execution.Operation.Abstractions.dll
    HotChocolate.PersistedOperations.Abstractions -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Abstractions/bin/Debug/net10.0/HotChocolate.PersistedOperations.Abstractions.dll
    HotChocolate.Transport.Formatters -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Formatters/bin/Debug/net10.0/HotChocolate.Transport.Formatters.dll
    HotChocolate.Execution.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Abstractions/bin/Debug/net8.0/HotChocolate.Execution.Abstractions.dll
    HotChocolate.Fusion.Utilities -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Utilities/bin/Debug/net10.0/HotChocolate.Fusion.Utilities.dll
    HotChocolate.PersistedOperations.Pipeline -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Pipeline/bin/Debug/net10.0/HotChocolate.PersistedOperations.Pipeline.dll
    HotChocolate.Validation -> /workspaces/hc-3/src/HotChocolate/Core/src/Validation/bin/Debug/net10.0/HotChocolate.Validation.dll
    HotChocolate.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Abstractions/bin/Debug/net10.0/HotChocolate.Abstractions.dll
    HotChocolate.Execution.Pipeline -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Pipeline/bin/Debug/net10.0/HotChocolate.Execution.Pipeline.dll
    HotChocolate.Validation -> /workspaces/hc-3/src/HotChocolate/Core/src/Validation/bin/Debug/net8.0/HotChocolate.Validation.dll
    HotChocolate.PersistedOperations.Abstractions -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Abstractions/bin/Debug/net8.0/HotChocolate.PersistedOperations.Abstractions.dll
    HotChocolate.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Abstractions/bin/Debug/net8.0/HotChocolate.Abstractions.dll
    HotChocolate.Types.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.Abstractions/bin/Debug/net9.0/HotChocolate.Types.Abstractions.dll
    HotChocolate.Transport.Formatters -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Formatters/bin/Debug/net8.0/HotChocolate.Transport.Formatters.dll
    HotChocolate.Execution.Configuration.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Configuration.Abstractions/bin/Debug/net8.0/HotChocolate.Execution.Configuration.Abstractions.dll
    HotChocolate.Fusion.Utilities -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Utilities/bin/Debug/net8.0/HotChocolate.Fusion.Utilities.dll
    HotChocolate.Execution.Operation.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Operation.Abstractions/bin/Debug/net9.0/HotChocolate.Execution.Operation.Abstractions.dll
    HotChocolate.Execution.Pipeline -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Pipeline/bin/Debug/net8.0/HotChocolate.Execution.Pipeline.dll
    HotChocolate.PersistedOperations.Pipeline -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Pipeline/bin/Debug/net8.0/HotChocolate.PersistedOperations.Pipeline.dll
    HotChocolate.Fusion.Utilities -> /workspaces/hc-3/src/HotChocolate/Fusion-vnext/src/Fusion.Utilities/bin/Debug/net9.0/HotChocolate.Fusion.Utilities.dll
    HotChocolate.Execution.Configuration.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Configuration.Abstractions/bin/Debug/net10.0/HotChocolate.Execution.Configuration.Abstractions.dll
    HotChocolate.Execution.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Abstractions/bin/Debug/net9.0/HotChocolate.Execution.Abstractions.dll
    HotChocolate.PersistedOperations.Abstractions -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Abstractions/bin/Debug/net9.0/HotChocolate.PersistedOperations.Abstractions.dll
    HotChocolate.Transport.Formatters -> /workspaces/hc-3/src/HotChocolate/AspNetCore/src/Transport.Formatters/bin/Debug/net9.0/HotChocolate.Transport.Formatters.dll
    HotChocolate.PersistedOperations.Pipeline -> /workspaces/hc-3/src/HotChocolate/PersistedOperations/src/PersistedOperations.Pipeline/bin/Debug/net9.0/HotChocolate.PersistedOperations.Pipeline.dll
    HotChocolate.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Abstractions/bin/Debug/net9.0/HotChocolate.Abstractions.dll
    HotChocolate.Validation -> /workspaces/hc-3/src/HotChocolate/Core/src/Validation/bin/Debug/net9.0/HotChocolate.Validation.dll
    HotChocolate.Execution.Configuration.Abstractions -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Configuration.Abstractions/bin/Debug/net9.0/HotChocolate.Execution.Configuration.Abstractions.dll
    HotChocolate.Execution.Pipeline -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Pipeline/bin/Debug/net9.0/HotChocolate.Execution.Pipeline.dll
    HotChocolate.Types -> /workspaces/hc-3/src/HotChocolate/Core/src/Types/bin/Debug/net8.0/HotChocolate.Types.dll
    HotChocolate.Types -> /workspaces/hc-3/src/HotChocolate/Core/src/Types/bin/Debug/net10.0/HotChocolate.Types.dll
    CookieCrumble.HotChocolate -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate/bin/Debug/net8.0/CookieCrumble.HotChocolate.dll
    HotChocolate.Types.OffsetPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.OffsetPagination/bin/Debug/net8.0/HotChocolate.Types.OffsetPagination.dll
    HotChocolate.Execution.Projections -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Projections/bin/Debug/net10.0/HotChocolate.Execution.Projections.dll
    CookieCrumble.HotChocolate -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate/bin/Debug/net10.0/CookieCrumble.HotChocolate.dll
    HotChocolate.Execution.Projections -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Projections/bin/Debug/net8.0/HotChocolate.Execution.Projections.dll
    HotChocolate.Types.CursorPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.CursorPagination/bin/Debug/net8.0/HotChocolate.Types.CursorPagination.dll
    HotChocolate.Types.CursorPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.CursorPagination/bin/Debug/net10.0/HotChocolate.Types.CursorPagination.dll
    HotChocolate.Types.OffsetPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.OffsetPagination/bin/Debug/net10.0/HotChocolate.Types.OffsetPagination.dll
    HotChocolate.Data -> /workspaces/hc-3/src/HotChocolate/Data/src/Data/bin/Debug/net10.0/HotChocolate.Data.dll
    HotChocolate.Data -> /workspaces/hc-3/src/HotChocolate/Data/src/Data/bin/Debug/net8.0/HotChocolate.Data.dll
    HotChocolate.Types -> /workspaces/hc-3/src/HotChocolate/Core/src/Types/bin/Debug/net9.0/HotChocolate.Types.dll
    CookieCrumble.HotChocolate -> /workspaces/hc-3/src/CookieCrumble/src/CookieCrumble.HotChocolate/bin/Debug/net9.0/CookieCrumble.HotChocolate.dll
    HotChocolate.Types.OffsetPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.OffsetPagination/bin/Debug/net9.0/HotChocolate.Types.OffsetPagination.dll
    HotChocolate.Execution.Projections -> /workspaces/hc-3/src/HotChocolate/Core/src/Execution.Projections/bin/Debug/net9.0/HotChocolate.Execution.Projections.dll
    HotChocolate.Types.CursorPagination -> /workspaces/hc-3/src/HotChocolate/Core/src/Types.CursorPagination/bin/Debug/net9.0/HotChocolate.Types.CursorPagination.dll
    HotChocolate.Data.Projections.SqlServer.Tests -> /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net8.0/HotChocolate.Data.Projections.SqlServer.Tests.dll
    HotChocolate.Data -> /workspaces/hc-3/src/HotChocolate/Data/src/Data/bin/Debug/net9.0/HotChocolate.Data.dll
    HotChocolate.Data.Projections.SqlServer.Tests -> /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net10.0/HotChocolate.Data.Projections.SqlServer.Tests.dll
    HotChocolate.Data.Projections.SqlServer.Tests -> /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net9.0/HotChocolate.Data.Projections.SqlServer.Tests.dll
    Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net9.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v9.0)
    Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net8.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v8.0)
    Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net10.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v10.0)
    VSTest version 18.0.1 (arm64)
    VSTest version 18.0.1 (arm64)

VSTest version 18.0.1 (arm64)

Starting test execution, please wait...Starting test execution, please wait...

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
A total of 1 test files matched the specified pattern.
A total of 1 test files matched the specified pattern.

Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 661 ms - HotChocolate.Data.Projections.SqlServer.Tests.dll (net10.0)
Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 661 ms - HotChocolate.Data.Projections.SqlServer.Tests.dll (net9.0)

Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 655 ms - HotChocolate.Data.Projections.SqlServer.Tests.dll (net8.0)

  • Passed: net8/net9/net10
  • Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net10.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v10.0)
    VSTest version 18.0.1 (arm64)

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net9.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v9.0)
Test run for /workspaces/hc-3/src/HotChocolate/Data/test/Data.Projections.SqlServer.Tests/bin/Debug/net8.0/HotChocolate.Data.Projections.SqlServer.Tests.dll (.NETCoreApp,Version=v8.0)
VSTest version 18.0.1 (arm64)
VSTest version 18.0.1 (arm64)

Starting test execution, please wait...Starting test execution, please wait...

A total of 1 test files matched the specified pattern.
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [SKIP]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
[xUnit.net 00:00:00.12] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
[xUnit.net 00:00:00.12] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
[xUnit.net 00:00:00.12] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
[xUnit.net 00:00:00.10] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
[xUnit.net 00:00:00.11] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
[xUnit.net 00:00:00.46] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [SKIP]
[xUnit.net 00:00:00.48] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
[xUnit.net 00:00:00.48] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
[xUnit.net 00:00:00.48] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
[xUnit.net 00:00:00.48] HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Executable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableSingleOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
[xUnit.net 00:00:01.32] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
[xUnit.net 00:00:01.36] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
[xUnit.net 00:00:01.36] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [SKIP]
[xUnit.net 00:00:01.36] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [SKIP]
[xUnit.net 00:00:01.36] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [SKIP]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]
[xUnit.net 00:00:01.58] HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [SKIP]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection_Nullable [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_ListObjectDifferentLevelProjection [1 ms]
Skipped HotChocolate.Data.Projections.QueryableFirstOrDefaultTests.Create_DeepFilterObjectTwoProjections [1 ms]

Passed! - Failed: 0, Passed: 77, Skipped: 9, Total: 86, Duration: 3 s - HotChocolate.Data.Projections.SqlServer.Tests.dll (net9.0)

Passed! - Failed: 0, Passed: 77, Skipped: 9, Total: 86, Duration: 3 s - HotChocolate.Data.Projections.SqlServer.Tests.dll (net10.0)

Passed! - Failed: 0, Passed: 77, Skipped: 9, Total: 86, Duration: 3 s - HotChocolate.Data.Projections.SqlServer.Tests.dll (net8.0)

  • Passed: net8/net9/net10 (Failed: 0, Passed: 77, Skipped: 9, Total: 86 each)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 27, 2026

Fusion Gateway Performance Results

Simple Composite Query

Req/s Err%
Constant 2 (50 VUs) 3260.67 0.00%
Ramping 2 (0-500-0 VUs) 3855.34 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 1.10ms 12.40ms 15.06ms 24.74ms 34.13ms 256.52ms
Ramping 2 1.22ms 51.40ms 56.96ms 98.96ms 142.59ms 290.48ms

Deep Recursion Query

Req/s Err%
Constant 2 (50 VUs) 760.58 0.00%
Ramping 2 (0-500-0 VUs) 930.17 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 9.69ms 56.89ms 63.38ms 82.26ms 99.55ms 638.38ms
Ramping 2 2.94ms 204.96ms 221.53ms 457.50ms 508.33ms 852.88ms

Variable Batching Throughput

Req/s Err%
Constant 2 (50 VUs) 5760.39 0.00%
Ramping 2 (0-500-0 VUs) 5237.38 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 0.15ms 8.10ms 8.58ms 14.25ms 17.46ms 70.46ms
Ramping 2 0.19ms 39.62ms 43.87ms 81.53ms 105.38ms 215.13ms

Runner 2 = benchmarking-2

Run 22489241255 • Commit 5534d92 • Fri, 27 Feb 2026 14:09:38 GMT

@glen-84
Copy link
Copy Markdown
Member

glen-84 commented Feb 27, 2026

FYI: #6706

And: #6706 (comment)

@glen-84 glen-84 closed this Mar 2, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (84e5c32) to head (a811455).
⚠️ Report is 19 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff      @@
##   main   #9251   +/-   ##
============================
============================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Projection middleware checks for null on non-nullable field, resulting in exception for complex type in EF Core 8

2 participants