2017-10-09 7 views
0

私はIdがオフに異なる種類(TKEY)にすることができます。このような一般的なリポジトリを持ってジェネリックリポジトリ

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); 
} 

?私はこのような例を参照してください

services.AddTransient(typeof(IGenericRepository<>), typeof(GenericRepository<>)); 

TKeyを削除してIDをINTに修正した場合に動作します。しかし、私はIDを柔軟にしたい。つまり時にはguidまたはintです。 Id型の文字列を作ることができましたが、それは怠惰で間違っています!

+0

インタフェースからジェネリック定義を削除して、 'TEntity'と' TKey'を使ってメソッドを呼び出すことができます(またはエンティティから 'TKey'を推測することさえできます)。 –

答えて

0
services.AddTransient(typeof(IGenericRepository<,>), typeof(GenericRepository<,>)); 

これは私のために働いたものです。

関連する問題