Frage
Ich habe die folgenden Tabellen
TUser (user_id, Vorname, Nachname) PK user_id
TGroup (group_id, Name) PK group_id
TUsersGroups (user_id, group_id) PK (User_id, group_id) FK (User_id) FK (Group_id)
Ich muss binden an ein Datagrid die TUsers, die folgenden Spalten Vorname zeigt, Nachname und Gruppennamen (der Name aus dem TGroup genommen.
Ich weiß, dass ich dies über die Subsonic Abfrage erreichen kann, aber ist es eine Möglichkeit, die Liste des Typ TUserCollection zeigt die Gruppennamen zu bekommen?
Lösung
Nicht wie Sie wollen. Allerdings, wenn Ihre Liste klein ist, können Sie einfach die zugehörige Zugriff TGroup Objekt aus jeder der TUser Objekte. Aber das ist natürlich eine andere Abfrage jedes Mal, wenn einer von ihnen Zugriff verursacht.
Was ich in der Vergangenheit getan habe, ist entweder eine Spalte der Ergebnismenge einer Subsonic Abfrage hinzufügen (bevor die Abfrage ausgeführt wird), aber das heißt, Sie haben nicht eine stark typisierte Sammlung von TUser Objekten.
Auch könnten Sie eine Ansicht mit allen Spalten erstellen Sie wollen und regen Subsonic.
Schließlich könnten Sie alle Benutzer in einer Sammlung zurückziehen (die Ihren Kriterien entsprechen) und alle Gruppen, die Ihren Kriterien entsprechen, in ihre eigenen Sammlungen, dann „finden“ die gewünschte Gruppe aus der neuen Gruppe Sammlung wann immer Sie brauchen es für einen zugehörigen TUser.