我正在使用Repository和UoW模式。我的服务如下所示:存储库和UoW模式与服务层
public class MyService : IService
{
private readonly IUnitOfWork<MyContext> unitOfWork;
private readonly IMyRepository myRepository;
public MyService(IUnitOfWork<MyContext> unitOfWork, IMyRepository myRepository)
{
this.unitOfWork = unitOfWork;
this.myRepository = myRepository;
}
//Methods...
}
在服务中,我需要使用其他实体(例如检查权限等)。
是否建议在服务中使用相关存储库或直接使用服务?
另外,对于每个用户,我们对每个CRUD操作都拥有权限(布尔值)。这些权限存储在数据库中。
应该在控制器级别还是在服务级别检查权限?
使用UoW存储库的想法很好,但是ma数据库有100个实体。另一方面,我的每个服务都会得到一个新的UoW(因此是新的dbcontext),并且很难为不同的服务维护相同的上下文。 –
这就是我使用IUnitOfWorkFactory的原因。我可以用它来管理生命周期,例如,我可以很轻松地保证,在同一个Web请求中调用的每个服务都会收到相同的UnitOfWork。 –