(간체) 다음 코드를 사용하여, 나는 '으로 System.Object'을 입력 할 유형 'System.DateTime'를 캐스팅 할 수엔티티 프레임 워크 4.1 "DefaultOrder 속성"을 리포지토리
"수 없습니다 오류를 얻을. LINQ to Entities는 캐스팅 엔터티 데이터 모델 기본 형식 만 지원합니다. " return 문이있는 행에
는 :
public MyRepository<Post>
{
public Expression<Func<Post, object>> DefaultOrder;
public MyRepository()
{
DefaultOrder = p => p.PublishedOn;
}
public IQueryable<Post> All()
{
var entities = new MyDbContext().Set<Post>();
return entities.OrderByDescending(DefaultOrder);
}
}
나는/db4o.Linq 대신 엔티티 프레임 워크의 db4o는와 동일한 코드를 사용하고 아무 문제가 없었다. 그래서 여기
내 질문 : 이
-
?
- 내가 지금하는 것과 같은 방식으로 내 DefaultOrder를 정의 할 수있는 대체 솔루션이 있습니까?
편집 :
주문 방법 기본 순서 식을 대체, 나를 위해 일하는 솔루션을 찾았
public MyRepository<T>
{
public Func<IQueryable<T>, IOrderedQueryable<T>> DefaultOrderMethod;
public MyRepository()
{
DefaultOrderMethod = o => o.OrderBy(x => x.PublishedOn);
}
public IQueryable<T> All()
{
var entities = new MyDbContext().Set<T>();
return DefaultOrderMethod(entities);
}
}
사전에 캐스팅을 시도 했습니까? ('DefaultOrder = p => (객체) p.PublishedOn;') – AbdouMoumen
좋은 생각! -하지만 불행히도 작동하지 않습니다 ... – davehauser