У вас есть внешние ключи и настройки отношений в вашей базе данных?Если это так, вы можете значительно упростить свой запрос.Я также рекомендовал бы переименовать ваши таблицы в файле .dbml, чтобы не все они имели префикс «tbl».
Если у вас есть настройка отношений, ваш запрос может выглядеть (что-то) примерно так:
from s in surveyContext.tblSurveys
where (s.Survey_Date >= startDate && s.Survey_Date <= stopDate) &&
(s.Unsubstantiated ||
(s.tblTypes_for_Surveys.Any(st => st.tblSurvey_Type.UnsubstantiatedAvailable) && s.tblDeficiencies.Count() == 0))
orderby s.Survey_Date
select s;