Domande taggate «expression-trees»


21
Recupero del nome della proprietà dall'espressione lambda
C'è un modo migliore per ottenere il nome della proprietà quando viene passato tramite un'espressione lambda? Ecco quello che ho attualmente. per esempio. GetSortingInfo<User>(u => u.UserId); Ha funzionato lanciandolo come un'espressione membere solo quando la proprietà era una stringa. poiché non tutte le proprietà sono stringhe, ho dovuto usare l'oggetto, …

1
I SyntaxNodes Roslyn vengono riutilizzati?
Ho dato un'occhiata a Roslyn CTP e, sebbene risolva un problema simile all'API dell'albero delle espressioni , entrambi sono immutabili ma Roslyn lo fa in un modo completamente diverso: Expressioni nodi non hanno alcun riferimento al nodo genitore, vengono modificati utilizzando a ExpressionVisitored è per questo che le parti grandi …


4
LINQ to Entities supporta solo il casting di tipi primitivi o di enumerazione EDM con l'interfaccia IEntity
Ho il seguente metodo di estensione generico: 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 …



8
Come si applica OrderBy su un IQueryable utilizzando un nome di colonna di stringa all'interno di un metodo di estensione generico?
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); } Poiché il tipo per OrderBy non è dedotto da sortExpression, devo specificarlo in questo modo in fase di esecuzione: …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.