Существует ли использование шаблона Linq для динамичного создания фильтра?

Я только что сделал ему следующие изменения, и это сработало как шарм!

Отредактируйте файл distutils.cfg, присутствующий в местах:

  1. C: \ Users \\ AppData \ Local \ Continuum \ Anaconda3 \ Lib \ distutils \
  2. C: \ Users \\ AppData \ Local \ Continuum \ Anaconda3 \ pkgs \ libpython-2.0-py36_0 \ Lib \ distutils

Измените содержимое distutils.cfg на:

[build]
compiler=g++

[build_ext]           
compiler=g++

PS Возможно также изменение только во 2-м месте.

P.P.S Убедитесь, что gcc установлен и находится в PATH. Для меня был установлен TDM-GCC-64

21
задан Mark Biek 31 August 2008 в 07:45
поделиться

4 ответа

Проверьте Динамическая Библиотека Linq из блога ScottGu:

, Например, ниже стандартный безопасный с точки зрения типов LINQ к SQL запрос VB, который получает данные из базы данных Northwind и отображает их в управлении ASP.NET GridView:

Dim Northwind As New NorthwindDataContext
Dim query = From q In Northwind.Products Where p.CategoryID = 2 And p.UnitPrice > 3 Order By p.SupplierID Select p

Gridview1.DataSource = query
GridView1.DataBind()

пользование библиотекой LINQ DynamicQuery я мог переписать вышеупомянутое выражение запроса вместо этого как так

Dim Northwind As New NorthwindDataContext
Dim query = Northwind.Products .where("CategoryID=2 And UnitPrice>3") . OrderBy("SupplierId")
Gridview1.DataSource = query
GridView1.DataBind()

Уведомление, как условное выражение - где пункт и пункт вида-orderby теперь берут строковые выражения вместо выражений кода. Поскольку они - последние ограниченные строки, я могу динамично создать их. Например: Я мог предоставить UI бизнес-аналитику конечного пользователя с помощью моего приложения, которое позволяет им создать запросы самостоятельно (включая произвольные условные предложения).

19
ответ дан 29 November 2019 в 20:59
поделиться

Динамический Linq является одним способом пойти.

Это может быть излишество для Вашего сценария. Рассмотрите:

IQueryable<Customer> query = db.Customers;

if (searchingByName)
{
  query = query.Where(c => c.Name.StartsWith(someletters));
}
if (searchingById)
{
  query = query.Where(c => c.Id == Id);
}
if (searchingByDonuts)
{
  query = query.Where(c => c.Donuts.Any(d => !d.IsEaten));
}
query = query.OrderBy(c => c.Name);
List<Customer> = query.Take(10).ToList();
9
ответ дан 29 November 2019 в 20:59
поделиться

что-то вроде этого?

var myList = new List<string> { "a","b","c" };
var items = from item in db.Items
            where myList.Contains(item.Name)
            select item;

, который создал бы sql оператор как

SELECT * FROM Items [t0] where Name IN ('a','b','c')
2
ответ дан 29 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: