expression-trees- все статьи тега


Получение имени свойства из лямбда-выражения

есть ли лучший способ получить имя свойства при передаче через лямбда-выражение? Вот что у меня сейчас есть. например. GetSortingInfo<User>(u => u.UserId); он работал путем приведения его в качестве memberexpression только тогда, когда свойство было строкой. поскольку не все свойства являются строками, я должен был использовать объект, но тогда он вернет unaryexpression для них. public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, ...

Доступ к значению выражения члена

Если у меня есть продукт. var p = new Product { Price = 30 }; и у меня есть следующий запрос LINQ. var q = repo.Products().Where(x=>x.Price == p.Price).ToList() в IQueryable провайдере я получаю MemberExpression обратно для p. Price, который содержит постоянное выражение, однако я не могу получить значение "30" обратно от него. обновление Я пробовал это, но это, кажется, не работает. var memberExpression = (MemberExpression)GetRootConstantExpression(m); var fi = (PropertyInfo)memberEx ...

Как создать дерево выражений для представления ' String.Содержит("термин")' в C#?

Я только начинаю с деревьев выражений, поэтому я надеюсь, что это имеет смысл. Я пытаюсь создать дерево выражений для представления: t => t.SomeProperty.Contains("stringValue"); пока у меня есть: private static Expression.Lambda<Func<string, bool>> GetContainsExpression<T>(string propertyName, string propertyValue) { var parameterExp = Expression.Parameter(typeof(T), "type"); var propertyExp = Expression.Property(parameter, propertyName); ...