매핑 된 테이블이 있지만 컴파일 후 추가 열을 테이블에 추가하거나 테이블에서 제거 할 수 있습니다. 그 새로운 열을 고려하는 linq 쿼리를 생각해 내려고합니다. 이 시나리오에서는 이러한 동적 열 중 하나를 사용하여 주문하려고합니다. 이것은 내가 지금까지 가지고있는 것이다.표현식 트리를 사용하여 엔티티에 대한 linq에서 사용자 정의 순서 생성
var queryableData = dc.wf_task_ext_attributes.AsQueryable();
ParameterExpression pe = Expression.Parameter(typeof(DateTime), "ExtValue105");
// The next line is where it fails
MethodCallExpression orderByCallExpression = Expression.Call(
typeof(Queryable),
"OrderBy",
new Type[] { queryableData.ElementType, queryableData.ElementType },
queryableData.Expression,
Expression.Lambda<Func<DateTime, DateTime>>(pe, new ParameterExpression[] { pe }));
IQueryable<string> results = queryableData.Provider.CreateQuery<string>
(orderByCallExpression);
그것은 다음과 같은 메시지와 함께 실패하는 것 :
없음 일반적인 방법 '있는 OrderBy을'형 'System.Linq.Queryable'에하면 공급 형태 인수 및 인수와 호환됩니다. 메소드가 비 제네릭 일 경우 형식 인수가 제공되지 않아야합니다.
내가 뭘 잘못하고 있니?
엔티티에 추가 열을 나타내는 속성이 있습니까? – CharlesNRice
아니요, 매핑 후에 열이 추가됩니다. – Smeegs
이것이 어떻게 작동하는지 알지 못합니다. 호출을 통해 동적으로 명령을 작성할 수는 있지만 유효하게하려면 기존 등록 정보를 가져야합니다. EF는 속성에서 열까지 매핑을 보유하지만 속성은 없으며 열에 대해 알지 못합니다. – Mant101