J'utilise modèle de référentiel générique avec des méthodes:Entity Framework et problème modèle référentiel
private ObjectQuery<T> ObjectQueryList()
{
var list = CamelTrapEntities.CreateQuery<T>(EntitySetName);
return list;
}
public IQueryable<T> List()
{
return ObjectQueryList();
}
Liste Metod() retourne IQueryable < T >, becase IQueryable < T > est facile de se moquer. J'ai aussi méthode d'extension:
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;
}
Cette méthode est utilisée en dehors du référentiel pour obtenir la liste des entités ayant des propriétés de navigation déjà chargés, par exemple: List.Include (« CreatedBy »). Le problème est que cela ne fonctionne pas. Tous les éléments sont ignorés. quand je change de méthode Liste() pour
public ObjectQuery<T> List()
{
return ObjectQueryList();
}
tout fonctionne bien.
Comment dois-je implémenter le modèle de référentiel pour pouvoir exécuter des requêtes plus complexes?