Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dynamic Linq Query Help?
- //if (!String.IsNullOrEmpty(StudentNumber))
- var results = (from s in Students
- where s.StudentNumber == 1001
- select s
- );
- //else if (!String.IsNullOrEmpty(LastName) & (String.IsNullOrEmpty(FirstName))
- var results = (from s in Students
- where s.LastName == "Tucker"
- select s
- );
- //else if (!String.IsNullOrEmpty(LastName) & (!String.IsNullOrEmpty(FirstName))
- var results = (from s in Students
- where s.LastName == "Tucker" && s.FirstName == "Ron"
- select s
- );
- var results = Students.AsEnumerable(); // use .AsQueryable() for EF or Linq-to-SQL
- if (!string.IsNullorEmpty(StudentNumber))
- {
- results = results.Where(s => s.StudentNumber.Equals(StudentNumber));
- }
- else if (!string.IsNullOrEmpty(LastName))
- {
- results = results.Where(s => s.LastName.Equals(LastName));
- if (!string.IsNullOrEmpty(FirstName))
- {
- results = results.Where(s => s.FirstName.Equals(FirstName));
- // filter is in addition to predicate against LastName
- }
- }
- // results can be used here
- Func<Student, bool> predicate;
- if (!string.IsNullOrEmpty(StudentNumber))
- {
- predicate = s => s.StudentNumber.Equals(StudentNumber);
- }
- else if (!string.IsNullOrEmpty(LastName))
- {
- predicate = s => s.LastName.Equals(LastName);
- if (!string.IsNullOrEmpty(FirstName))
- {
- Func<Student, bool> p = predicate;
- predicate = s => p(s) && s.FirstName.Equals(FirstName);
- }
- }
- else
- {
- predicate = s => true;
- }
- var query = Students.Where(predicate);
- Func<Student, bool> predicate;
- predicate = s =>
- !string.IsNullOrEmpty(StudentNumber)
- ? s.StudentNumber.Equals(StudentNumber)
- : !string.IsNullOrEmpty(LastName)
- ? !string.IsNullOrEmpty(FirstName)
- ? s.LastName.Equals(LastName) && s.FirstName.Equals(FirstName)
- : s.LastName.Equals(LastName)
- : true;
- var query = Students.Where(predicate);
Add Comment
Please, Sign In to add comment