Guest User

Untitled

a guest
Aug 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. Dynamic Linq Query Help?
  2. //if (!String.IsNullOrEmpty(StudentNumber))
  3. var results = (from s in Students
  4. where s.StudentNumber == 1001
  5. select s
  6. );
  7.  
  8. //else if (!String.IsNullOrEmpty(LastName) & (String.IsNullOrEmpty(FirstName))
  9.  
  10. var results = (from s in Students
  11. where s.LastName == "Tucker"
  12. select s
  13. );
  14.  
  15. //else if (!String.IsNullOrEmpty(LastName) & (!String.IsNullOrEmpty(FirstName))
  16. var results = (from s in Students
  17. where s.LastName == "Tucker" && s.FirstName == "Ron"
  18. select s
  19. );
  20.  
  21. var results = Students.AsEnumerable(); // use .AsQueryable() for EF or Linq-to-SQL
  22.  
  23. if (!string.IsNullorEmpty(StudentNumber))
  24. {
  25. results = results.Where(s => s.StudentNumber.Equals(StudentNumber));
  26. }
  27. else if (!string.IsNullOrEmpty(LastName))
  28. {
  29. results = results.Where(s => s.LastName.Equals(LastName));
  30.  
  31. if (!string.IsNullOrEmpty(FirstName))
  32. {
  33. results = results.Where(s => s.FirstName.Equals(FirstName));
  34. // filter is in addition to predicate against LastName
  35. }
  36. }
  37.  
  38. // results can be used here
  39.  
  40. Func<Student, bool> predicate;
  41. if (!string.IsNullOrEmpty(StudentNumber))
  42. {
  43. predicate = s => s.StudentNumber.Equals(StudentNumber);
  44. }
  45. else if (!string.IsNullOrEmpty(LastName))
  46. {
  47. predicate = s => s.LastName.Equals(LastName);
  48.  
  49. if (!string.IsNullOrEmpty(FirstName))
  50. {
  51. Func<Student, bool> p = predicate;
  52. predicate = s => p(s) && s.FirstName.Equals(FirstName);
  53. }
  54. }
  55. else
  56. {
  57. predicate = s => true;
  58. }
  59.  
  60. var query = Students.Where(predicate);
  61.  
  62. Func<Student, bool> predicate;
  63. predicate = s =>
  64. !string.IsNullOrEmpty(StudentNumber)
  65. ? s.StudentNumber.Equals(StudentNumber)
  66. : !string.IsNullOrEmpty(LastName)
  67. ? !string.IsNullOrEmpty(FirstName)
  68. ? s.LastName.Equals(LastName) && s.FirstName.Equals(FirstName)
  69. : s.LastName.Equals(LastName)
  70. : true;
  71.  
  72. var query = Students.Where(predicate);
Add Comment
Please, Sign In to add comment