var query = from p in db.Persons select p;
if (!string.IsNullOrEmpty(nameFilter))
{
query = query.Where(
n => n.fullName.Contains(nameFilter));
}
if (!string.IsNullOrEmpty(addressFilter))
{
query = query.Where(a => a.Address == addressFilter);
}
if (!string.IsNullOrEmpty(depFilter))
{
query = query.Where(d => d.Department == depFilter);
}
if (birthdate != null)
{
query = query.Where(b => b.Birthdate == birthdate);
}
if (birthdate != null && toDate != null && fromDate != null)
{
query = query.Where(dr.Birthdate >= fromDate && dr.Birthdate <= toDate);
}
var results = query.ToList();