우리는 EF4를 사용하고 있고 DAL 레이어 (DAL 레이어는 linq 쿼리를 가지고 있음) 용 테스트 케이스를 생성하고 있습니다. TypeMock을 조롱 프레임 워크로 사용하고 있습니다. 테스트를 위해, 우리는 ObjectContext
의 Fakecontext을 작성하고 다음과 같이 CreateObjectSet
방법을 조롱하고 있습니다 :EF4 'Include'메소드를 테스트하기위한 ObjectQuery를 만드는 방법
Isolate.WhenCalled(() => fakeContext.Context.CreateObjectSet<User>)).WillReturnCollectionValuesOf(fakeUsers.AsQueryable());
위의 노력 벌금을. 문제는 '포함'을 사용하여 관련 테이블을 포함하려고 할 때입니다.
public static IQueryable<T> Include<T>(this IQueryable<T> source, Expression<Func<T>> property)
{
var objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
var propertyPath = GetPropertyPath(property);
return objectQuery.Include(propertyPath);
}
return source;
}
그래서 인 일이 무엇인지, 위의
Include
방법에 소스 유형은
ObjectQuery<T>
을해야한다 : 우리는 다음과 같이이 방법을 포함 드리고 있습니다. 그러나 우리가
CreateObjectSet
을 조롱 했으므로
Include
방법의 소스 유형은
Collection.Generic.List
유형입니다. 위의 경우에 우리가 어떻게 조롱해야하는지 알려주세요. 시의 적절한 도움을받을 수 있습니다. 감사합니다
하나 이상의 질문에 올바르게 서식을 지정할 수 있습니까? –
[관련 엔티티 포함 방법] (http://stackoverflow.com/questions/7104461/how-to-include-associated-entities) –