4
Я построил пользовательский поставщик IQueryable. Поставщик преобразует запрос, напримерКак запросить коллекцию с Linq.Expressions
c.PurchaseDate == new DateTime(2011, 11, 29) && c.Name == "Elizabeth Brown"
из основного кода в System.Linq.Expressions.Expression
Теперь мне нужно, чтобы запустить их против этой коллекции с Linq запрос
IQueryable<Customer> customers = _customers.AsQueryable();
Может кто-нибудь сказать мне, как запросить коллекцию с помощью Expression?
Благодаря
Wow! Это впечатляет! Строка 'Expression left = Expression.Property (pe, typeof (Customer)' должна иметь 'параметр' вместо' pe' правильно? – gideon
На самом деле в вашем реальном коде вам нужно переопределить абстрактный класс ExpressionVisitor для посещения и выдавить эти значения в runtime, но для демонстрации я создал эти три значения Expression в статическом контексте. – user1135594
Да, вы правы. Я ошибся в подготовке образца, но теперь исправлен. Этот код представляет только базовые функции, просто чтобы понять, как работает этот метод. Чтобы продемонстрировать, что я создал как левое, так и правое выражение предложения lambda, соответствующее c.PurchaseDate == new DateTime (2011, 11, 29) && c.Name == "Elizabeth Brown" Параметр ParameterExpression определяет только тип и параметр c. – user1135594