-1
에 LINQ에 '으로 System.Object'를 입력 유형 'System.DateTime'를 캐스팅 할 수 없습니다 나는 다음과 같은 코드가 있습니다엔티티
public static IQueryable<T> ApplyOrdering<T>(this IQueryable<T> query, IQueryObject queryObject, Dictionary<string, Expression<Func<T, Object>>> columnsMap)
{
if (String.IsNullOrWhiteSpace(queryObject.SortBy) || !columnsMap.ContainsKey(queryObject.SortBy))
return query;
if (queryObject.IsSortAscending)
return query.OrderBy(columnsMap[queryObject.SortBy]);
else
return query.OrderByDescending(columnsMap[queryObject.SortBy]);
}
을하지만 사전에 객체가 있다면 나는 다음과 같은 오류가 발생합니다 날짜 :
'System.DateTime'형식을 'System.Object'형식으로 변환 할 수 없습니다. LINQ to Entities는 EDM 프리미티브 또는 열거 형을 캐스팅하는 기능 만 지원합니다.
이것은 내가 위의 확장 메서드 호출을 통해 전달하는 columnsMap에 대한 코드 :
var columnsMap = new Dictionary<string, Expression<Func<Post, Object>>>
{
["createdDate"] = p => p.CreatedDate
};
query = query.ApplyOrdering(queryObject, columnsMap);
어떻게 해결할 수 있습니까?
어떤 라인에서 예외가 발생합니까? – mjwills
문제는 매핑하는 것보다 오히려 주문하는 것 같습니다 – abatishchev
@abatishchev 매핑의 문제점은 무엇입니까? 내 업데이트 된 코드를 참조하십시오. – adam78