存储库模式:我们如何从大型数据库中加载数据?

问题描述 投票:-2回答:1

我在最近的项目中使用Generic Repository Pattern。假设我的表有100000条记录,如果我一次加载所有记录,则需要花费太多时间。即下面提到的方法将返回所有记录。

 public async Task<IEnumerable<T>> GetAll()
    {
        return await dbSet.ToListAsync();
    }

我的UI层仍在等待100000条记录加载到内存中,以便在Jquery Datatable中绑定我的DOM。是否有任何机制可以自动在每个调用中加载500条记录,或者我必须在业务层的机制中实现这一点?

lazy-loading repository-pattern
1个回答
0
投票

一般来说,值得注意的是我们不使用存储库从数据库中获取查询。我们使用其他机制从数据库获取查询因此,在我看来,不要尝试使用存储库从数据库中获取查询。如果您被迫使用存储库来获取查询,那么您实际上是将存储库转换为DOA(数据访问对象)。最后,如果您尝试使用tank获取队列,则无法使用通用存储库。您应该使用DbSet从数据库中获取自定义查询。在书里

Scott Millet(领域驱动设计的模式,原则和实践)

存储库部分 - 有一篇关于通用存储库的完整文章

© www.soinside.com 2019 - 2024. All rights reserved.