У меня есть проект, в котором у меня есть динамически построенные DataGrids (winform), которые генерируются в соответствии с некоторой конфигурацией внутри некоторых XML-файлов в каталоге. Фактически, для каждого DataGrid имеется один xml (файл имеет то же имя DataGrid), и этот xml содержит информацию о столбцах DataGrid и таблице базы данных, на которую должна быть привязана сетка.C# LinqToSql build dynamic where where
С той же информацией, приведенной выше, создается панель (для каждой сетки) и содержит поля, необходимые для фильтрации каждого столбца.
В настоящее время я применил к моему проекту, например, описанный в этой ссылке: http://www.codeproject.com/Tips/582450/Build-Where-Clause-Dynamically-in-Linq
динамически фильтровать свою таблицу, используя динамический где (LINQ) положение на столе источника данных (DataSource просто выбрать во всем базовая таблица).
То, что я бы достиг, это оптимизация, потому что, если есть много данных, извлечение db может быть дорогостоящим. Итак, я бы построил динамический linq для sql where вместо вместо динамического запроса linq по списку со всей табличной записью.
Как я могу это сделать?
Заранее спасибо.
Возможный дубликат [Динамически генерировать запросы LINQ] (http://stackoverflow.com/questions/9505189/dynamically-generate-linq-queries) –
Ссылка, на которую вы ссылаетесь, уже генерирует выражение, которое может быть применено к 'DbSet' или L2S' Table', используя '.Where (выражение)'. Почему вы не можете применить его непосредственно к базе данных вместо источника данных? – Maarten
Если вы используете Linq2Sql, тогда ваш запрос возвращает объект IQueryable (что для простоты просто оболочка вокруг SqlCommand). Если вы примените приложение Where к IQueryable, которое будет транслироваться в инструкцию WHERE Sql. Это, кажется, решает вашу проблему, или, может быть, я не понял вашу озабоченность в первую очередь. – Sphaso