Azure / Azure/data-api-builder

[Bug]: GraphQL Aliased Field Queries Cause Duplicate Dictionary Key Error for Same Entity

Offen
#3,229 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
cri graphql
Vorherrschende Sprache
C#
Sterne
1.5k
Forks
370
Ø Merge
3 T. 22 Std.
Gemergte PRs (30 T.)
9

Beschreibung

### Discussed in https://github.com/Azure/data-api-builder/discussions/2785

Originally posted by **ascii1010** July 24, 2025
```graphql
brochure: books(
filter: { type: { eq: "brochure" } }
) {
items {
id
description
}
}

magazine: books(
filter: { type: { eq: "magazine" } }
) {
items {
id
description
}
}
```

The above generates error:

```
An item with the same key has already been added. Key: books
```

## Theory

The issue is not GraphQL itself. It is the resolver implementation using the entity name as the dictionary key instead of the alias or a unique field identifier. Two selections of books are valid GraphQL, but the server code is deduplicating by entity name and therefore treating them as a duplicate dictionary key.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die bereitgestellte GraphQL-Abfrage mit zwei Aliasen für die Entität books zu reproduzieren. Verfolge dann die in der Issue beschriebene Resolver-Implementierung und finde heraus, wo Selektionen unter Verwendung des Entitätsnamens als Dictionary-Schlüssel gespeichert werden. Als erledigt gilt die Aufgabe, wenn beide aliasierten Selektionen ihre jeweils separat gefilterten Ergebnisse ohne einen Duplicate-Key-Fehler zurückgeben und diese Abfrage durch Regressionstestabdeckung abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, graphql
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.