«expression-trees» 태그된 질문


21
람다 식에서 속성 이름 검색
람다 식을 통해 전달 될 때 속성 이름을 얻는 더 좋은 방법이 있습니까? 여기 내가 현재 가지고있는 것입니다. 예. GetSortingInfo<User>(u => u.UserId); 속성이 문자열 일 때만 멤버 표현식으로 캐스팅하여 작동했습니다. 모든 속성이 문자열이 아니기 때문에 객체를 사용해야했지만 그에 대한 단항 표현식을 반환합니다. public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, object>> …

1
Roslyn SyntaxNodes는 재사용됩니까?
나는 Roslyn CTP를 살펴 보았고 , Expression tree API 와 비슷한 문제를 해결 하지만 둘 다 불변이지만 Roslyn은 상당히 다른 방식으로 그렇게합니다. Expression노드는 부모 노드에 대한 참조가없고 a를 사용하여 수정되므로 ExpressionVisitor큰 부분을 재사용 할 수 있습니다. 반면에 Roslyn의 SyntaxNode는 부모를 참조하므로 모든 노드는 효과적으로 재사용이 불가능한 블록이됩니다. 방법은 좋아 Update, …

5
Expression.Quote ()는 Expression.Constant ()가 할 수없는 일을 무엇입니까?
참고 : 이전 질문 인 " LINQ의 Expression.Quote 메서드의 목적은 무엇입니까? "를 알고 있습니다 . ” ,하지만 읽으면 내 질문에 답이 없다는 것을 알게 될 것입니다. 의 명시된 목적이 무엇인지 이해합니다 Expression.Quote(). 그러나 Expression.Constant()동일한 용도로 사용할 수 있습니다 ( Expression.Constant()이미 사용 된 모든 용도에 추가 ). 따라서 왜 필요한지 이해할 …

4
LINQ to Entities는 IEntity 인터페이스를 사용하여 EDM 기본 또는 열거 유형 캐스팅 만 지원합니다.
다음과 같은 일반 확장 방법이 있습니다. 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( …


4
컴파일 된 C # Lambda 표현식 성능
컬렉션에 대한 다음과 같은 간단한 조작을 고려하십시오. 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() { …

8
일반 확장 메서드 내에서 문자열 열 이름을 사용하여 IQueryable에 OrderBy를 적용하려면 어떻게해야합니까?
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 = Expression.Lambda<T, TSortColumn>(body, param); 또는 return query.OrderBy<T, …

7
인형을위한 표현 트리? [닫은]
닫힘 . 이 질문은 더 집중되어야 합니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 한 가지 문제에만 초점을 맞추도록 질문을 업데이트하십시오 . 휴일 칠년 전에 . 이 질문 개선 나는이 시나리오에서 더미입니다. 나는 이것이 무엇인지 Google에서 읽으려고했지만 이해하지 못합니다. 누군가가 그들이 무엇이며 왜 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.