c# - Linq - Dynamic Condition -
i have following query :-
i want add 1 more condition dynamic, if user passes dateofbirth should e.dateofbirth <= date.
var data = ctx.employee.where(e => e.id == id                                 && e.category == category                                 && e.dateofjoining <= date)                                 .select(e => e)                                 .tolist();   how condition dynamically?
you can use reflection solve problem there idea may helps you:
  var criteria = new dictionary<string, func<employee, bool>>();    var date = datetime.now;  //or other value    //initialize criterias      criteria.add("dateofbirth", e => e.dateofbirth <= date);   criteria.add("dateofjoining", e => e.dateofjoining <= date);    var selectedvalue = "dateofbirth";    var data = ctx.employee.where(e => e.id == id &&                                      e.category == category &&                                      criteria[selectedvalue](e)).tolist();   so if change selectedvalue output based on corresponding criteria looking for.
Comments
Post a Comment