Gestern I posted this question in Bezug auf die Verwendung von Lambda innerhalb einer Join() - Methode, um zu überprüfen, ob 2 Bedingungen über 2 Entitäten existieren. Ich habe eine Antwort auf die Frage erhalten, die perfekt funktioniert hat. Ich dachte nach dem Lesen des MSDN-Artikels über die Enumerable.Join() -Methode, ich würde genau verstehen, was passiert ist, aber ich nicht. Könnte jemand mir helfen, zu verstehen, was im folgenden Code vor sich geht (speziell die Methode Join())? Danke im Voraus.Hilfe Verstehen Enumerable.Join Methode
if (db.TableA.Where(a => a.UserID == currentUser)
.Join(db.TableB.Where(b => b.MyField == someValue),
o => o.someFieldID,
i => i.someFieldID,
(o,i) => o)
.Any())
{
//...
}
Edit: Insbesondere, ich bin gespannt auf die letzten drei Parameter, und dem, was tatsächlich vor sich geht. Wie führen sie in den Signaturanforderungen von Func (touter, TKey), Func (TInner, TKey) usw.
Ja, ich hatte es vorher schon so geschrieben, und nachdem ich realisiert hatte, dass es mit der Join-Methode mit Lambda funktioniert, dachte ich, ich würde mich selbst herausfordern. Ich glaube immer noch, dass dieser Weg klarer ist, und werde wahrscheinlich die Lösung auf diese Weise implementieren, aber ich möchte zuerst die andere Technik vollständig verstehen. –
Sollte in Ihrem aktualisierten Beispiel der zweite Delegat (EntityType o) kein Delegate (EntityType i) sein? –
Ja, danke Metro Schlumpf (Ich kann nicht glauben, dass diese beiden Wörter nacheinander vorkommen, lol). –