Mein team
Objekt ist wie folgt und ich versuche, nur die Mitglieder mit einer select
Anweisung zu erhalten. Das Problem, das ich habe, ist, dass ich die Ergebnisse bekomme, aber die Position geht verloren, weil es nicht auf mein POCO-Objekt abbildet, weil das Ergebnis "flach" ist.DocumentDb SELECT mit Unterobjekt
Mein team
Objekt sieht wie folgt aus:
{
id: 123,
name: "My Team",
members: [
{
id: 789,
name: "John Smith",
position:
{
id: 444,
name: "Manager"
}
},
{
id: 987,
name: "Jane Doe",
position:
{
id: 222,
name: "Director"
}
}
]
}
Meine select
Aussage wie folgt aussieht:
SELECT m.id, m.name, m.position.id as positionId, m.position.name as positionName
FROM Teams t
JOIN m IN t.members
WHERE t.id = 123
Also, wenn ich über die Select-Anweisung ausführen, ich bekommen, was ich unten zeigen und die Objektform eines Elements stimmt nicht mit meinem POCO-Objekt überein, sodass die Positionsinformationen verschwinden.
[
{
id: 789,
name: "John Smith",
positionId: 444,
positionName: "Manager"
},
{
id: 987,
name: "Jane Doe",
positionId: 222,
positionName: "Director"
}
]
Mein C# Form der POCO-Objekt entspricht dem JSON-Objekt. Also habe ich ein Position-Objekt in meinem Member-Objekt.
Wie bekomme ich Mitglieder in der genauen Form, die sie in der Datenbank sind?
UPDATE: Ich änderte meine select
Aussage zu den folgenden und es funktionierte gut. Es gibt mir jetzt automatisch die genaue Form meines POCO-Objekts.
Ich verwende bereits DAO-Objekte und handle Mapping zwischen DAL und der Domäne. Ich lese immer DAO-Objekte von DocumentDb, so dass ich mir keine Gedanken darüber machen muss, ob die Formen richtig sind. Wie auch immer, ich habe die Lösung gefunden und den ursprünglichen Post aktualisiert. Es war eine offensichtliche Lösung. Ich weiß nicht, warum ich nicht früher daran gedacht habe. – Sam