Если geocodes
является IQueryable<>
, то вы можете использовать отложенное выполнение, которое приходит с созданием запрашиваемого объекта.Ваш код может выглядеть примерно так:
if(searchByName) //Some boolean value to indicate you are searching the name
{
geocodes = geocodes.Where(s => s.NAME.Contains(searchString));
}
if(searchBySite)
{
geocodes = geocodes.Where(s => s.CFN_SITE.Contains(searchString));
}
if(searchByAddress)
{
geocodes = geocodes.Where(s => s.STREET1.Contains(searchString));
}
//etc...
Ваш запрос фактически не будет отправлен в базу данных, поскольку вы его просто создаете.Entity Framework создаст необходимый SQL-запрос, только когда вы материализуете данные, перечисляя результаты (вызывая ToList()
или просто циклически повторяя их)