J'utilise le modèle Generic Repository au-dessus d'Entity Framework Code First. Tout fonctionnait bien jusqu'à ce que je doive inclure plusieurs entités dans une requête. J'ai réussi à inclure une entité avec succès, mais maintenant je n'arrive pas à comprendre comment inclure plusieurs entités. Regardez ce que j'ai obtenu jusqu'à présent :
public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
{
var entityName = GetEntityName<TEntity>();
return _objectContext.CreateQuery<TEntity>(entityName);
}
public IList<TEntity> GetQueryWithInclude<TEntity>(string toInclude) where TEntity : class
{
var entityName = GetEntityName<TEntity>();
return _objectContext.CreateQuery<TEntity>(entityName).Include(toInclude).ToList();
}
private string GetEntityName<TEntity>() where TEntity : class
{
return string.Format("{0}.{1}", _objectContext.DefaultContainerName, _pluralizer.Pluralize(typeof(TEntity).Name));
}
Ce que j'ai essayé de faire, mais qui n'a pas fonctionné, c'est de passer un tableau de chaînes dans une fonction, puis d'essayer d'"ajouter" les inclusions en haut de la requête. Je me demandais si je pouvais appeler la fonction GetQueryWithInclude et passer un nom d'entité (en fait une propriété de navigation) à la fois pour agréger les résultats de la requête, mais je crains que cela ne duplique les résultats de la requête à chaque appel... À votre avis, quelle serait la meilleure façon de faire fonctionner cette méthode ?
Merci d'avance !
UPDATE :
Voici un exemple de ce que j'essaie d'obtenir :
public IQueryable GetQueryWithIncludes(string[] otherEntities)
{
var entityName = GetEntityName<TEntity>();
//now loop over the otherEntities array
//and append Include extensions to the query
//so inside the loop, something like:
_objectContext.GetQuery<TEntity>(entityName).Include(otherEntities[index]);
}
0 votes
Donner des précisions sur "inclure plus d'entités dans une requête" ? Pouvez-vous en donner un exemple ? Si vous avez un
ObjectContext
vous devriez pouvoir interroger un objet ou des objets connexes avec LinqToEntities.0 votes
@giddy : Regardez la mise à jour ci-dessus. Merci.