2011-01-13 17 views
0

Ich habe 3 Tabellen in einer Datenbank:Viele zu viele in Linq mit vb.net

image of the database

Ich habe Online gesucht für eine lange Zeit, wie in Linq zu versuchen, herauszufinden, und vb.net wie Ich kann eine Abfrage durchführen, die sowohl auf die Ereignistabelle als auch auf die Einzeltabelle zugreifen kann, um beispielsweise alle Ereignisse anzuzeigen, an denen die Person 1 teilnimmt. Ich habe mich gefragt, ob irgendjemand mir in die richtige Richtung zeigen könnte oder von guten Tutorial-Seiten mit guten Beispielen für ähnliche Dinge.

Vielen Dank im Voraus :) Luke.

Antwort

0

'Start' Ihre Abfrage aus der IndividualTakingPart Tabelle.

Dim Events = From itp in context.IndividualTakingPart _ 
      Where itp.Individual_id = 1 _ 
      Select itp.Events 

aktualisieren (in Reaktion auf die Kommentare unten)

Sie benötigen einen Primärschlüssel auf der Verbindungs ​​Tabelle haben die Verbände zu den anderen Tabellen zu ermöglichen.

+0

wo es die itp.Events auswählt, die es gibt, haben Zugriff auf die Ereignistabelle nur die IDs, die in der Tabelle individualtakting sind – Houlahan

+1

@Houlahan - überprüfen Sie, ob Ihr Datenkontext richtig erstellt wurde. Sie sollten über IndividualTakingPart Zugriff auf die Tabellen "Individual" und "Events" haben. –

+0

soweit ich seine Einrichtung richtig sehe ich bin richtig in der Annahme, dass der Kontext als Dim db As New SailMembersDataContext definiert werden kann? – Houlahan

0

Klingt, als ob Sie so etwas brauchen.

Public Function GetEventsByIndividual(ByVal individual As Individual) As IEnumerable(Of Event) 

    Return individual.IndividualTakingParts _ 
        .SelectMany(Function(itp) itp.Events) 

End Function 
+0

das wäre perfekt aber. Wählen Sie nicht Teil der einzelnen Klasse:/ – Houlahan

+0

Hoppla; total meine Schuld. Probieren Sie stattdessen die aktualisierte Version. –

+0

aus irgendeinem Grund sagt es, dass die individualTakingPart nicht Teil der einzelnen Tabelle bin ich frage mich, ob meine Beziehung jetzt korrekt ist? – Houlahan