내 사용자 정의 ObjectContext 클래스에는 유닛 테스트가 가능하도록 IObjectSet으로 노출 된 엔티티 콜렉션이 있습니다. 나는 (줄리 러먼의 블로그 http://thedatafarm.com/blog/data-access/agile-entity-framework-4-repository-part-5-iobjectset/에서) 컴파일 된 쿼리에서이 ObjectContext를을 사용하여 "포함"확장 메서드를 호출 할 때 나는 문제에 실행 한 : 엔티티에IObjectSet은 CompiledQuery로 확장 메소드 오류를 포함합니다.
public IQueryable<MyPocoObject> RunQuery(MyCustomContext context, int theId)
{
var query = CompiledQuery.Compile<MyCustomContext, int, IQueryable<MyPocoObject>>(
(ctx, id) => ctx.MyPocoObjects.Include("IncludedPocoObject").Where(n => n.IncludedPocoObject.id == id));
return query(context, theId);
}
LINQ는 방법 '을 인식하지 못합니다을 System.Linq .IQueryable 1[MyPocoObject] Include[MyIncludedPocoObject](System.Linq.IQueryable
1 [MyPocoObject], System.String) '메서드를 사용하고이 메서드를 저장소 식으로 변환 할 수 없습니다.
IObjectSet보다는 ObjectSet 컬렉션에서이 동일한 쿼리를 사용하면 정상적으로 작동합니다. 프리 컴파일없이이 쿼리를 단순히 실행하면 올바르게 작동합니다. 내가 여기서 무엇을 놓치고 있니?
동일한 문제가 발생했습니다. 해결책을 찾았습니까? – Paul