Als «expression-trees» getaggte Fragen


21
Abrufen des Eigenschaftsnamens aus dem Lambda-Ausdruck
Gibt es eine bessere Möglichkeit, den Eigenschaftsnamen zu erhalten, wenn er über einen Lambda-Ausdruck übergeben wird? Hier ist was ich derzeit habe. z.B. GetSortingInfo<User>(u => u.UserId); Es funktionierte, indem es nur dann als Mitgliedsausdruck umgewandelt wurde, wenn die Eigenschaft eine Zeichenfolge war. Da nicht alle Eigenschaften Zeichenfolgen sind, musste ich …

1
Werden Roslyn SyntaxNodes wiederverwendet?
Ich habe mir Roslyn CTP angesehen und obwohl es ein ähnliches Problem wie die Expression Tree-API löst , sind beide unveränderlich, aber Roslyn tut dies auf ganz andere Weise: ExpressionKnoten haben keinen Verweis auf den übergeordneten Knoten, werden mit a geändert ExpressionVisitorund deshalb können große Teile wiederverwendet werden. Roslyns SyntaxNodeauf …

4
Was macht Expression.Quote (), was Expression.Constant () noch nicht kann?
Hinweis: Mir ist die frühere Frage „ Was ist der Zweck der Expression.Quote-Methode von LINQ? ” , Aber wenn Sie weiterlesen, werden Sie sehen, dass es meine Frage nicht beantwortet. Ich verstehe, was der erklärte Zweck Expression.Quote()ist. Allerdings Expression.Constant()kann für den gleichen Zweck verwendet werden (zusätzlich zu allen Zwecken , …

4
LINQ to Entities unterstützt nur das Umwandeln von EDM-Grund- oder Aufzählungstypen mit IEntity-Schnittstelle
Ich habe die folgende generische Erweiterungsmethode: 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 InvalidOperationException(string.Format( …



8
Wie wende ich OrderBy auf ein IQueryable an, indem ich einen String-Spaltennamen innerhalb einer generischen Erweiterungsmethode verwende?
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); } Da der Typ für OrderBy nicht von sortExpression abgeleitet ist, muss ich ihn zur Laufzeit wie folgt angeben: var …

7
Ausdrucksbäume für Dummies? [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 6 Jahren . Verbessere diese Frage Ich bin der Dummy in …

9
Greifen Sie auf den Wert eines Mitgliedsausdrucks zu
Wenn ich ein Produkt habe. var p = new Product { Price = 30 }; und ich habe die folgende linq Abfrage. var q = repo.Products().Where(x=>x.Price == p.Price).ToList() In einem IQueryable-Anbieter erhalte ich einen MemberExpression für den p.Price zurück, der einen konstanten Ausdruck enthält, aber ich kann den Wert "30" …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.