Używam rodzajowe repozytorium wzór z metod repozytorium wzór:Entity Framework i problemem
private ObjectQuery<T> ObjectQueryList()
{
var list = CamelTrapEntities.CreateQuery<T>(EntitySetName);
return list;
}
public IQueryable<T> List()
{
return ObjectQueryList();
}
Metod List() zwraca IQueryable < T >, becase IQueryable < T > jest łatwo drwić. Mam też metodę rozszerzenia:
public static IQueryable<T> Include<T>(this IQueryable<T> obj, string path)
{
if (obj is ObjectQuery<T>)
(obj as ObjectQuery<T>).Include(path);
return obj;
}
Metoda ta jest stosowana poza repozytorium, aby uzyskać listę podmiot posiadający właściwości nawigacyjnych już załadowany, na przykład: List.Include („CreatedBy”). Problem polega na tym, że nie działa. Wszystkie uwzględnienia są ignorowane. przy zmianie listy() w celu
public ObjectQuery<T> List()
{
return ObjectQueryList();
}
wszystko działa poprawnie.
Jak zastosować szablon repozytoriów, aby móc wykonywać bardziej złożone zapytania?