Eu entendo lambdas e o Funce Actiondelegados. Mas expressões me surpreendem. Em que circunstâncias você usaria um Expression<Func<T>>velho, e não um velho comum
Eu entendo lambdas e o Funce Actiondelegados. Mas expressões me surpreendem. Em que circunstâncias você usaria um Expression<Func<T>>velho, e não um velho comum
Existe uma maneira melhor de obter o nome da propriedade quando transmitida por meio de uma expressão lambda? Aqui está o que eu tenho atualmente. por exemplo. GetSortingInfo<User>(u => u.UserId); Funcionou lançando-o como uma expressão membere apenas quando a propriedade era uma...
Venho analisando o Roslyn CTP e, embora ele resolva um problema semelhante à API da árvore Expression , ambos são imutáveis, mas Roslyn o faz de uma maneira bem diferente: Expressionnós não têm referência ao nó pai, são modificados usando ae ExpressionVisitoré por isso que grandes partes podem...
Observação: estou ciente da pergunta anterior “ Qual é o propósito do método Expression.Quote do LINQ? ” , Mas se continuar a ler verá que não responde à minha pergunta. Eu entendo qual é o propósito declarado de Expression.Quote(). No entanto, Expression.Constant()pode ser usado para a mesma...
Eu tenho o seguinte método de extensão genérico: 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 {...
Existe uma maneira de desserializar expressões em C #, gostaria de armazenar expressões em um banco de dados e carregá-los em tempo de execução.
Considere a seguinte manipulação simples sobre uma coleção: 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); Agora vamos usar Expressões. O código a seguir é aproximadamente equivalente: static...
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 =...