Вопросы с тегом «expression-trees»


21
Получение имени свойства из лямбда-выражения
Есть ли лучший способ получить имя свойства при передаче через лямбда-выражение? Вот что у меня сейчас есть. например. GetSortingInfo<User>(u => u.UserId); Он работал, выражая его как выражение, только когда свойство было строкой. потому что не все свойства являются строками, я должен был использовать объект, но тогда он вернул бы унарное …

1
Используются ли повторно узлы синтаксиса Roslyn?
Я изучал Roslyn CTP, и, хотя он решает ту же проблему, что и API дерева выражений , оба неизменяемы, но Roslyn делает это совершенно по-другому: Expressionузлы не имеют ссылки на родительский узел, изменяются с помощью a ExpressionVisitor, поэтому большие части можно использовать повторно. Roslyn SyntaxNode, с другой стороны, имеет ссылку …

5
Что Expression.Quote () делает, чего Expression.Constant () еще не может?
Примечание. Мне известно о предыдущем вопросе « Какова цель метода Expression.Quote в LINQ?» ” , Но если вы продолжите читать, то увидите, что это не отвечает на мой вопрос. Я понимаю, в чем Expression.Quote()заключается заявленная цель . Однако Expression.Constant()может использоваться для той же цели (в дополнение ко всем целям, для …

4
LINQ to Entities поддерживает только приведение примитивов EDM или перечислимых типов с интерфейсом IEntity.
У меня есть следующий общий метод расширения: public static T GetById<T>(this IQueryable<T> collection, Guid id) where T : IEntity { Expression<Func<T, bool>> predicate = e => e.Id == id; T entity; // Allow reporting more descriptive error messages. try { entity = collection.SingleOrDefault(predicate); } catch (Exception ex) { throw new …


4
Производительность скомпилированных лямбда-выражений C #
Рассмотрим следующую простую операцию над коллекцией: static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i => i % 2 == 0).Where(i => i > 5); Теперь воспользуемся выражениями. Следующий код примерно эквивалентен: static void UsingLambda() { Func<IEnumerable<int>, …

8
Как применить OrderBy к IQueryable, используя имя строкового столбца в общем методе расширения?
public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName) where T : EntityObject { var param = Expression.Parameter(typeof(T), "o"); var body = Expression.PropertyOrField(param,columnName); var sortExpression = Expression.Lambda(body, param); return query.OrderBy(sortExpression); } Поскольку тип для OrderBy не выводится из sortExpression, мне нужно указать его примерно так во время выполнения: var sortExpression …

7
Деревья выражений для чайников? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 7 лет назад . Уточните этот вопрос Я манекен в этом сценарии. Я пытался прочитать в …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.