J'ai un référentiel générique comme ce qui permet Id d'être hors de différents types (TKey)référentiel générique avec un identifiant de différents types
public interface IGenericRepository<TEntity, TKey> where TEntity : class
{
Task<TEntity> GetByIdAsync(TKey id);
Task<IEnumerable<TEntity>> ListAllAsync();
Task<IEnumerable<TEntity>> ListAsync(string criteriaName, DynamicParameters parameters);
Task<TEntity> CreateAsync(TEntity entity);
Task UpdateAsync(TEntity entity);
Task DeleteAsync(TKey id);
}
Comment puis-je injecter cela dans les services de base .net 2? Je vois des exemples comme celui-ci
services.AddTransient(typeof(IGenericRepository<>), typeof(GenericRepository<>));
qui fonctionne si je trouve supprimer TKey et fixer le Id à un INT. Mais je veux que l'Id soit flexible. C'est parfois un guid ou un int. Je pourrais faire le type de chaîne d'identification mais qui se sent paresseux et faux!
Vous pouvez supprimer la définition des médicaments génériques de l'interface qui vous permettra d'appeler les méthodes avec un '' TEntity' et TKey' (ou même déduisent 'TKey' de l'entité). –