ada*_*iko 4 c# generics entity-framework repository-pattern
我正在尝试使用实体框架实现通用存储库.
我的存储库定义为:
public class GenericRepository<T> : IRepository<T> where T : class
Run Code Online (Sandbox Code Playgroud)
我想添加一个通用的GetByID,其中传入的ID类型也是通用的.我真的不希望我的业务逻辑告诉我类型是例如......
_repository.GetByID<int>(123);
Run Code Online (Sandbox Code Playgroud)
我想隐藏tyoe定义,但无法弄清楚在哪里或如何做到这一点.
Stackoverflow上的大多数帖子似乎只是将其ID作为整数.我不希望这样,因为你的标识符并不总是整齐!
有关这个问题的任何想法?
我这样做了
interface IRepository<TEntity, TKey> {
TEntity GetById(TKey id);
}
Run Code Online (Sandbox Code Playgroud)
然后我继承了这个界面
class Person {
int ID;
}
interface IPersonRepository : IRepository<Person, int> { ... }
Run Code Online (Sandbox Code Playgroud)
这使得DI/IoC和单元测试非常友好.