我想实现一个通用的存储库,使用实体框架。通用T GetByID <K>(K ID_)
我的仓库被定义为:
public class GenericRepository<T> : IRepository<T> where T : class
我想补充的地方一般是太传递ID的类型的通用GetByID。我真的不希望我的业务逻辑告诉我的类型是e.g ....
_repository.GetByID<int>(123);
我想隐藏tyoe定义,但不能找出哪里或如何做到这一点。
Stackoverflow上的大多数帖子似乎只有他们的ID作为整数。我不想要这个,因为你的标识符并不总是要整数!
关于这个问题的任何想法?
+1,只是输入相同的东西。我已经使用过这几次,没有任何问题。 – 2010-12-18 19:45:20
虚拟-1。这再次没有解决问题中提出的主要问题。 BL仍然需要知道类型和**这里的泛型是错误的**因为只有一种类型的键是可以接受的。 – Aliostad 2010-12-18 19:50:06
嗯,我不确定TKey在这里需要泛型。在99%的情况下,例如排除怪异的PK字段和组合键,PK将是一个标识(int)。所以'GetById(int id)'就足够了。我不认为需要'TKey'。 – RPM1984 2010-12-19 00:03:22