LINQ vb.net GRUPPE DURCH - WÄHLEN Sie verknüpfte Spalte
Ich habe eine sehr einfache SQL-Abfrage, die ich bin versucht zu reproduzieren:
SELECT t1.id, t1.name, count(*), min(t2.inserted) as inserted_first, max(t2.inserted) as inserted_last
FROM tbl1 t1
LEFT JOIN tbl2 t2 ON t1.id=t2.tbl1_id
WHERE t2.search=15
GROUP BY t1.id, t1.name
Funktioniert dies perfekt für mich. Es erlaubt mir die Gruppe durch die einzigartigen Elemente von t1.id und t1.Namen, aber auch die Höhe der Zeit, die dieses paar erscheint, und auch die min-und max-Wert t2.eingefügt für die verknüpfte Tabelle. Problem ist nun, wenn ich diese in LINQ bekomme ich:
Dim query =
From t1 In ent.TBL1
Join t2 In ent.TBL2 On t1.id Equals t2.tbl1_id
Where (t2.search=15)
Group t1 By t1.id, t1.name Into Group
Select New With {
.id = id,
.name = name,
.count = Group.Count,
.min_value = ???,
.max_Value = ???
}
Bin ich verloren, was kann ich tun, um wählen Sie die min. - und max. Gruppe.Min funktionieren würde, wenn es war der gleiche Tisch wie in der Gruppierung, doch da es in t2, ich bin nicht in der Lage zu verweisen. Auch kann ich nicht fügen Sie es auf meine Gruppe, da seine verschiedenen.
Beachten Sie, dass tbl2 links zu tbl1 on tbl2.tbl1_id -> tbl1.id. Auch dies ist ein verdummt Beispiel für mein problem, nicht das wirkliche Leben schema.
Ich Schätze jede Hilfe in dieser Angelegenheit
InformationsquelleAutor Anthony Greco | 2011-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin kein VB-person, aber ich denke Sie wollen:
Beachten Sie, wie hier jedes Gruppenelement enthält sowohl
t1
undt2
, die wie Sie sind zu erhalten, können dieInserted
Eigenschaft. Es ist nicht klar, ob Sie selbst müssent1
oder anderen teilen dert2
, so dass Sie kann in der Lage sein zu verwenden:Leider ist mein VB LINQ-Fähigkeiten sind nicht bis zu der Herausforderung, zu wissen, ob dass das richtige für Sie. Wenn Sie gerne in C# (die Sie dann konvertieren), ich konnte Ihnen helfen, mehr leicht...
InformationsquelleAutor Jon Skeet