Linq optional parameters
.net, c#, dynamic, linq
Solution
This is one of the best examples of why LINQ is so powerful - deferred execution. You can build up the query in different phases, and only when the query is finally executed or resolved will the SQL statement be generated:
var query = edmxObject.Users.AsQueryable<Users>();
if (! String.IsNullOrEmpty(model.FirstName)) {
query = from user in query
where user.FirstName.Contains(model.FirstName)
select user;
}
if (! String.IsNullOrEmpty(model.UserName) {
query = from user in query
where user.UserName.Contains(model.UserName)
select user;
}
// this will cause the query to execute get the materialized results
var result = query.ToList();
Problem
I have a linq query. I have a bunch of parameters from a form I collect where I need to filter based of fields the user is searching for. ``` IQueyable<Users> user = from user in edmxObject.Users where user.FirstName.Contains(model.FirstName ?? user.FirstName) && user.UserName.Contains(model.UserName ?? user.UserName) ``` I have a few more non string field filters I need to filter including long and boolean. They could be nulls if the user does not select anything. How do I include them in the query.