Die Auswahl von unterschiedlichen Objekten aus der Sammlung von Objekten mithilfe von lambda-Ausdrücken
Haben wir ein Projekt mit Fluent NHibernate. Es gibt ein Objekt namens BluePart mit einer Eigenschaft des Oem-Typ Oem.
public class BluePart : DomainEntity
{
...
public virtual Oem Oem { get; set; }
}
Oem-Objekt hat mehrere Eigenschaften, einschließlich OemCode und OemDescription.
public class Oem : DomainEntity
{
...
public virtual string OemCode { get; set; }
public virtual string OemDescription { get; set; }
}
Ich versuche zum Aufbau einer linq-Abfrage mittels lambda-Ausdrücken, die bekommen alle unterschiedliche Oems aus einer Liste von BlueParts (2,7 Millionen Datensätze). Es sollte im Idealfall erzeugen die folgenden sql (was läuft in <1sek):
select distinct o.OemCode, o.OemDescription
From BluePart b inner join Oem o on o.OemId = b.Oem_id
Unten ist die Abfrage, die ich erstellt, die gibt alle Oems, unabhängig von der Unterscheidbarkeit.
var oem = repository.Query<BluePart>().Select(x => new Oem { OemCode =
x.Oem.OemCode, OemDescription = x.Oem.OemDescription}).ToList();
Ich dachte diese Abfrage wäre einfach zu bauen, aber es ist nicht den Dreh raus, so zu sein. Bei der Ausführung eines GroupBy - (.GroupBy(z => z.OemCode)), bekomme ich immer eine Fehlermeldung besagt, dass die Eigenschaft, die ich versuche zu GroupBy ist nicht eine Eigenschaft von Bluepart (das sollte es nicht sein, weil ich die Gruppierung auf einem Grundstück von Oem)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa:
Diese wird nur erhalten Sie die distinct-code/Beschreibung) Paaren, aber es sieht aus wie das ist alles, was Sie interessiert.
Alternativ, die Verwendung von grouping:
Dieser erhalten Sie alle
BluePart
Entitäten gruppiert nach OEM-code/Beschreibung.2[<>f__AnonymousType2
2[System.String,System.String],Kern.Domain.Modell.BluePart]'."}object[]
.