Ich möchte für diese dynamisch einen Lambda-Ausdruck erstellen:erstellen Lambda-Ausdruck mit 3 Bedingungen
(o => o.Year == year && o.CityCode == cityCode && o.Status == status)
und ich schreibe dies:
var body = Expression.AndAlso(
Expression.Equal(
Expression.PropertyOrField(param, "Year"),
Expression.Constant(year)
),
Expression.Equal(
Expression.PropertyOrField(param, "CityCode"),
Expression.Constant(cityCode)
)
,
Expression.Equal(
Expression.PropertyOrField(param, "Status"),
Expression.Constant(status)
)
);
aber für dieses Stück Code:
Expression.Equal(
Expression.PropertyOrField(param, "Status"),
Expression.Constant(status)
)
Ich habe einen Fehler:
Cannot convert from 'System.Linq.Expressions.BinaryExpression' to 'System.Reflection.MethodInfo'
Wie kann ich einem Lambda-Ausdruck 3 Bedingungen hinzufügen?
was 'status'? –
@MongZhu I Update Ques. Bitte sehen Sie es wieder – Arian
'AndAlso' ist ein' BinaryExpression', d. H. Hat 2 Operanden. Wenn Sie mehr als 2 haben, müssen Sie mehrere 'AndAlso', d. H.' AndAlso (AndAlso (op1, op2), op3) usw. miteinander ketten. –