partial class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
}
我的通用存储库实现了对 TEntity
的一组常见方法,例如:
public TEntity Get(int id)
{
return _context.Set<TEntity>()
.Find(id);
}
public TEntity Get(Expression<Func<TEntity, bool>> predicate)
{
return _context.Set<TEntity>()
}
我可以像这样访问:
Repository<User>().Get();
许多存储库执行相同的操作,因此这是有益的,但现在我想扩展 Repository<User>
以支持一些额外的行为。
partial class Repository<User> : IRepository<User>
{
public user DoMagicFunction()
{
}
}
这样我就可以像使用仓库一样使用它了
Repository<User>().DoMagicFunction();
如何扩展相同的泛型类以便为Tentity
扩展新行为而不是修改它。
我可以像创建另一个UserRepository
来支持新的特性一样做,但访问器会变成
UserRepository.DoMagicFunction();
但我希望它能够像这样
。Repository<User>().DoMagicFunction();
Repository<T>
的私有DataContext
成员,以便选择它需要执行工作的数据? - Peter Morrisinternal
提供了额外的保护级别,防止将事物变为public
。 - Willem Van Onsem