Я искал здесь и в Google, но я в растерянности.Мне нужно, чтобы пользователи могли искать в базе данных отчеты, используя форму.Если у поля в форме есть значение, приложение получит любые отчеты с этим полем, установленным на это значение.Если поле формы остается пустым, приложение игнорирует его.Как я могу это сделать?В идеале я хотел бы просто написать предложения Where в виде строк и сложить те, которые не являются пустыми.
.Where("Id=1")
Я слышал, что это должно работать, но я продолжаювыдается ошибка: «не удалось разрешить в текущей области контекста. Убедитесь, что все переменные, на которые есть ссылки, находятся в области ...».
Другой подход заключается в извлечении всех отчетов и их фильтрации в предложении where ввремя.Я не решаюсь сделать это, потому что: 1. это огромный кусок данных по сети и 2. это большая обработка на стороне пользователя.Я хотел бы воспользоваться возможностями обработки сервера.Я слышал, что он не будет запрашивать, пока не будет запрошен.Таким образом, выполнение чего-то подобного
var qry = ctx.Reports
.Select(r => r);
фактически не запускает запрос, пока я не выполню:
qry.First()
Но если я начну делать:
qry = qry.Where(r => r.Id = 1).Select(r => r);
qry = qry.Where(r => r.reportDate = '2010/02/02').Select(r => r);
Будет ли этозапустить запрос?Так как я добавляю к нему предложение where.Мне бы хотелось простое решение ... в худшем случае я бы использовал вещи из Query Builder ... но я бы предпочел избежать этого (кажется сложным).
Любой совет?:)