У меня есть объект IQueryable, представляющий некоторый запрос по моей db-модели. Теперь мне нужно сделать некоторые проверки в этой IQeryable и вернуться обратно объект таким образомВыполнение предложения Any() в отношении объекта IQueryable
private IQuerable<myTableType> ValidateQery (IQuerable<myTableType> query , string user)
{
return query.Where (x => db.tblUsers.Where(y => y.User == user && y.Privilege >= x.PrivilegeRequired).Any())
}
Теперь то, что я хотел бы понять, если любой() пункт выполняется immidiatly или если он генерирует T-SQL который будет объединен с предыдущим. Я прошу, потому что я wuold избегаю выполнения запроса против db в тот момент.
Редактировать: Благодарим за консультацию по поводу использования «using». Это была ошибка, которую я сделал сейчас (написав этот пример кода), потому что я не могу проверить код сейчас (у меня нет визуальной студии на моей машине в этот момент), но моя проблема в целом была связана с этой ситуацией.
Спасибо, что разъяснили мою идею о том, как выполняется объект IQeryable. – Skary
@Servy Я должен спросить, учитывая, что он использует «db» в качестве своего контекста, и он не помещает его как ошибку, и он не передает его, можно предположить, что db объявляется как уровень модуля/класс. В этом случае контекст может быть или не быть удален до выполнения, правильно? –
@RobertMcKee Он отредактировал код в течение льготного периода. – Servy