相关疑难解决方法(0)

洋葱架构 - 服务层责任

我正在学习Jeffrey Palermo的Onion Architecture两周多了.我按照本教程创建了一个测试项目.在学习期间,我在SO上遇到了这个问题.根据公认的答案,有人nwang建议像GetProductsByCategoryId这样的方法不应该在Repository中,而另一方面则Dennis Traub 建议它是Repository的责任.我在做的是:

我有一个通用存储库Domain.Interface,我有一个方法Find:

public interface IRepository<TEntity> where TEntity : class
{
     IEnumerable<TEntity> Find(Expression<Func<TEntity, bool>> filter = null);
     .......
     .......
     .......
}
Run Code Online (Sandbox Code Playgroud)

然后,我创建了一个BaseRepositoryInfrastucture.Data:

public class RepositoryBase<TEntity> : IRepository<TEntity> where TEntity : class
{
     internal readonly DbSet<TEntity> dbSet;
     public virtual IEnumerable<TEntity> Find(
            Expression<Func<TEntity, bool>> filter = null)
     {
            IQueryable<TEntity> query = dbSet;

            if (filter != null)
            {
                query = query.Where(filter);
            }
            return query.ToList();
     } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc design-patterns repository-pattern onion-architecture

4
推荐指数
2
解决办法
4128
查看次数