Wie kann ich zwei Lambda-Ausdrücke kombinieren, ohne die Invoke-Methode zu verwenden?

Ich habe zwei Lambda-Ausdrücke:

Expression<Func<MyEntity, bool>> e1 = i=>i.FName.Contain("john");

und

Expression<Func<MyEntity, bool>> e2=i=>i.LName.Contain("smith");

Der i-Typ stammt von meinen poco-Entities, die mit invoke nicht verwendet werden können. Ich möchte diese in Runtime kombinieren.

Ich möchte diese Ausdrücke zur Laufzeit auf ähnliche Weise kombinieren wie:

Expression<Func<MyEntity, bool>> e3 = Combine(e1,e2);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage