存储库,服务层和查询对象

时间:2012-12-26 20:50:08

标签: repository n-tier-architecture service-layer

我正在尝试使用asp.net mvc应用程序中的存储库和服务层实现N层架构。 Service对象可以拥有多个存储库,以使用相同的工作单元收集所需的所有数据。 控制器只调用Service对象,对存储库一无所知。

存储库示例:

public class UsersRepository : IUsersRepository
{
     public IEnumerable<User> GetUsers(UsersQuery query)
     {
        ...
     }
}

UsersQuery对象包含了几个用于查询用户的选项,例如:

public class UsersQuery
{
    public bool IncludeDeleted { get; set; }
    public Expression<Func<User, object>> OrderBy { get; set; }
    //Ans so on...
}

我应该如何将动态OrderBy子句(和其他选项)传递给我的存储库?当然,可以通过服务传递Query对象,但在我看来,这不是真正的方式,因为产生开销并违反DRY原则。

有什么建议吗?提前谢谢。

0 个答案:

没有答案