Wie kombiniere ich diese beiden Linq-Abfragen in einer einzigen Abfrage?

8

Wie kann ich dies in einer Abfrage erhalten? Was ich möchte, ist die Person aus der Firma, die mit dem Namen der Person übereinstimmt, nach der ich suche.

Zur Zeit bekomme ich das Unternehmen und führe dann grundsätzlich die selbe Suche durch.

%Vor%     
T McKeown 22.04.2016, 02:35
quelle

3 Antworten

7

Angenommen, ich verstehe, was Sie zu tun versuchen, können Sie so etwas tun:

%Vor%

Beachten Sie, dass Sie nicht bereits nach dem Unternehmen filtern (Sie erhalten nur das erste Unternehmen, das jemanden mit diesem Namen hat, was ist, wenn es ein Vielfaches gibt? Wenn das nicht möglich ist, ist die Firmenüberprüfung nutzlos und Sie können als tu das, was ich tue, und wähle einfach alle Leute aus, filtere dann, anstatt in jede Firma zu gehen, überprüfe, ob die Person da ist, und gehe dann irgendwie hoch und runter!)

    
Ronan Thibaudau 22.04.2016, 02:48
quelle
5

Um die Person von der Company zu finden, die mit dem Namen der von Ihnen gesuchten bidInfo.ArchitectPerson übereinstimmt, müssen Sie sich alle Personen in den mit bidInfo verbundenen Unternehmen ansehen. und dann die Person mit dem passenden Namen finden.

Dies kann mit folgendem erreicht werden:

%Vor%


FirstOrDefault vs. SingleOrDefault :

Namen sind wahrscheinlich nicht einzigartig: Eine Firma könnte mehr als einen "John Smith" haben, der für sie arbeitet; Ein bidInfo könnte mehrere Companies enthalten, von denen mehr als einer einen anderen "Jane Smith" verwenden.

SingleOrDefault() löst eine Ausnahme aus, wenn mehr als ein Element mit dem übereinstimmt p.Name == bidInfo.ArchitectPerson.Name Kriterium.

Solange die oben beschriebenen "Smith-Fälle" einen akzeptablen Zustand für Ihr Programm beschreiben, verwenden Sie FirstOrDefault() .

    
AGB 22.04.2016 02:50
quelle
2

Wenn ich richtig verstanden habe, versuchen Sie, die erste Firma mit einer Person zu finden, die den gleichen Namen wie der Architekt hat, und dann beide zurückzugeben.

Wenn ja, dann denke ich, dass das funktioniert:

%Vor%

Lass es mich wissen, wenn ich etwas verpasst habe.

    
Enigmativity 22.04.2016 04:45
quelle

Tags und Links