2

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

存储库示例:

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 原则。

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

4

0 回答 0