linq Elemente aus der Kindsammlung auswählen
Unten sind meine Klassen. Ich habe ein Produkt, das enthält eine Liste der Tage. Jeder Tag hat ein Stadt-Eigentum.
Muss ich erstellen Sie eine linq-Abfrage, die mir geben wird, die unterschiedliche Städte, die auf alle meine Produkte in das system.
Habe ich versucht, etwas wie dies, aber es funktioniert nicht:
var cities = from product in NHibernateSession.Linq<Product>() select new { city = product.Days.Where(d => d.City != null).Distinct() }; //This returns the day items but i need distinct cities
public class Product : EntityBase
{
public virtual string Name { get; set; }
public virtual IList<ProductDayDefinition> Days { get; set; }
}
public class ProductDayDefinition : EntityBase
{
public virtual Product Product { get; set; }
public virtual City City { get; set; }
}
InformationsquelleAutor der Frage GuestMVCAsync | 2010-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie die
SelectMany
- Funktion, die nimmt ein einzelnes Element und können Sie mehrere Elemente aus.Beispiel:
Beachten Sie, dass, wenn die
City
Klasse nicht implementierenEquals
undGetHashCode
korrekt, wird das Ergebnis Duplikate.Hierzu können Sie mithilfe von query comprehension syntax wie die folgende: (Ungetestet)
InformationsquelleAutor der Antwort SLaks