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)

InformationsquelleAutor Brett | 2010-07-27
Schreibe einen Kommentar