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!)
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()
.
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.