estoy usando el patrón repositorio genérico con métodos patrón de repositorio:Marco de la entidad y el problema
private ObjectQuery<T> ObjectQueryList()
{
var list = CamelTrapEntities.CreateQuery<T>(EntitySetName);
return list;
}
public IQueryable<T> List()
{
return ObjectQueryList();
}
Lista Metod() devuelve IQueryable < T >, becase IQueryable < T > es fácil burlarse. También tengo método de extensión:
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;
}
Este método se utiliza fuera del repositorio para obtener la lista entidad con propiedades de navegación ya cargados, por ejemplo: List.Include ("CreatedBy"). El problema es que no funciona. Todos los incluidos son ignorados. cuando cambio método de la lista() para
public ObjectQuery<T> List()
{
return ObjectQueryList();
}
todo funciona bien.
¿Cómo debo implementar el patrón de repositorio para poder ejecutar consultas más complejas?