Ich möchte die folgenden Ausdrücke fusionieren:Wie zwei C# Lambda-Ausdrücke ohne Aufruf zusammengeführt werden?
// example class
class Order
{
List<OrderLine> Lines
}
class OrderLine { }
Expression<Func<Order, List<OrderLine>>> selectOrderLines = o => o.Lines;
Expression<Func<List<OrderLine>, Boolean>> validateOrderLines = lines => lines.Count > 0;
// now combine those to
Expression<Func<Order, Boolean>> validateOrder;
Ich habe es auf den selectOrderLines mit einem invoke zu arbeiten und das Ergebnis an den validateOrderLines Versorgung, sondern weil ich diese Ausdrücke in Entity Framework bin mit, Ich muss tatsächlich einen sauberen Ausdruck erstellen, der Folgendes darstellen sollte:
Expression<Func<Order, Boolean>> validateOrder = o => o.Lines.Count > 0;
Wie kann ich das tun?
Was würde ich brauchen, um ich n um Klammern hinzuzufügen? Ich meine Wenn ich einen Filter wie (ProductId == 1 oder ProductId == 2) und a.text.StartsWith ("a") – Marty
Wo finde ich den ParameterRebinder? – h8red
Wenn Sie aus irgendeinem Grund noch nach ParameterRebinder suchen, finden Sie sie unter [MSDN blog] (http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities) -combining-Prädikate.aspx) –