Jak mogę przekonwertować wyrażenie lambda między różnymi (ale kompatybilnymi) modelami?

(na podstawie rozmowy e-mailowej, nagranej teraz w celu wymiany informacji) mam dwa modele używane na różnych warstwach:

public class TestDTO {
    public int CustomerID { get; set; }
}
//...
public class Test {
    public int CustomerID { get; set; }
}

i lambda w odniesieniu do mojej warstwy DTO:

Expression<Func<TestDTO, bool>> fc1 =
   (TestDTO c1) => c1.CustomerID <= 100 && c1.CustomerID >= 10;

Jak mogę przekonwertować tę lambdę (w ogólnym przypadku) na mówienie o innym modelu:

Expression<Func<Test, bool>> fc2 = {insert magic here, based on fc1}

(oczywiście, jesteśmy po tym samym stanie testu, ale używającTest rodzaj)

?

questionAnswers(2)

yourAnswerToTheQuestion