[Linq][EF] Fragen zu 'or' in Linq-Subselect



  • Ich habe gerade mehrere Fragen zu Linq:

    Nehmen wir mal an eine Firma besitzt mehrere Ansprechpartner, und ich will die Firmen suchen, bei dem ein Ansprechpartner enthalten ist, dessen Vorname oder Nachname einen bestimmten string entspricht.

    Wenn ich es ohne den Oderfall betrachte und es auf den Nachnamen einschränke gehe ich von der folgenden Syntax aus:

    ...
    from firma in this.context.Firmen.Include("Ansprechpartner")
    where firma.Ansprechpartner.Select(a => a.Nachname).Contains(suchtext)
    ...
    

    Wie ist dies umzuschreiben um die Suche so umzustellen, das entweder der Nach- oder Vornamen dem Suchtext entsprechen muss?



  • ?

    ...
    from firma in this.context.Firmen.Include("Ansprechpartner")
    where (firma.Ansprechpartner.Select(a => a.Nachname).Contains(suchtext) 
        || firma.Ansprechpartner.Select(a => a.Vorname).Contains(suchtext))
    ...
    


  • Wuerde da noch ein let einbauen

    from firma in this.context.Firmen.Include("Ansprechpartner")
    let ansprechparner = firma.Ansprechpartner
    where (ansprechparner.Select(a => a.Nachname).Contains(suchtext) 
        || ansprechparner.Select(a => a.Vorname).Contains(suchtext))
    


  • Dank euch beiden schon einmal, Linq ist für mich noch ziemliches Neuland, zumindest jenseits der einfachen Abfragen.


Anmelden zum Antworten