Запитання з тегом «expression-trees»


21
Отримання імені властивості з виразу лямбда
Чи є кращий спосіб отримати ім'я властивості при передачі через лямбда-вираз? Ось що я зараз маю. напр. GetSortingInfo<User>(u => u.UserId); Він працював, передаючи його як memberexpression лише тоді, коли властивість була рядком. тому що не всі властивості є рядками, я повинен був використовувати об'єкт, але тоді він поверне для них …

1
Чи повторно використовуються синтаксичні вузли Roslyn?
Я дивився на CTP Roslyn і, хоча це вирішує аналогічну проблему з API дерева Expression , обидва незмінні, але Рослін робить це зовсім по-іншому: Expressionвузли не мають посилання на батьківський вузол, модифікуються за допомогою a ExpressionVisitorі тому великі частини можна використовувати повторно. SyntaxNodeЗ іншого боку, Roslyn's має посилання на свого …

4
Що Expression.Quote () робить те, що Expression.Constant () ще не може зробити?
Примітка: Мені відомо про попереднє запитання “ Яка мета методу LINQ Expression.Quote? ” , Але якщо ви прочитаєте далі, то побачите, що це не відповідає на моє запитання. Я розумію, у чому полягає заявлена ​​мета Expression.Quote(). Однак Expression.Constant()може використовуватися з тією ж метою (на додаток до всіх цілей, для 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 років тому . Удосконалюйте це питання Я манекен у цьому сценарії. Я намагався прочитати в Google, що це, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.