Tout d'abord, je ne suis pas sûr que cela soit possible. Je suis en train d'apprendre les génériques et j'ai plusieurs dépôts dans mon application. J'essaie de créer une interface qui prend un type générique et le convertit en quelque chose dont tous les référentiels peuvent hériter. J'en viens maintenant à ma question.
public interface IRepository<T>
{
IEnumerable<T> FindAll();
IEnumerable<T> FindById(int id);
IEnumerable<T> FindBy<A>(A type);
}
Est-il possible d'utiliser un générique pour déterminer ce qu'il faut trouver par ?
public IEnumerable<SomeClass> FindBy<A>(A type)
{
return _context.Set<SomeClass>().Where(x => x. == type); // I was hoping to do x.type and it would use the same variable to search.
}
Pour clarifier un peu plus, je considérais qu'il s'agissait d'une chaîne, d'un int ou de n'importe quel autre type que je souhaitais rechercher. Ce que j'espère, c'est que je puisse dire x.quelque chose où quelque chose est égal à la variable passée.
Je peux définir n'importe quel référentiel comme contexte de base de données en utilisant l'option
public IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
Des suggestions ?