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

时间:2018-08-30 12:42:32

标签: lazy-loading repository-pattern

我正在为我最近的项目使用通用存储库模式。假设我的表有100000条记录,并且如果一次加载所有记录,则将花费太多时间。即以下提到的方法将返回所有记录。

   public void setCursor(Cursor cursor){
        Cursor oldCursor = mCursor;
        oldCursor.unregisterContentObserver(mMyContentObserverr);
        oldCursor.close();

        mCursor = cursor;
        mCursor.registerContentObserver(mMyContentObserverr);
        notifyDataSetChanged();
    }

我的UI层仍在等待100000条记录加载到内存中,以在jQuery Datatable中绑定我的DOM。是否有任何机制可以在每次调用中自动加载500条记录,还是我必须在我的业务层中实现该机制?

1 个答案:

答案 0 :(得分:0)

通常,值得注意的是,我们不使用存储库从数据库获取查询,并且使用其他机制从数据库获取查询,所以,我认为,不要尝试使用存储库来获取查询从数据库中获取。如果您被迫使用存储库来查询,则实际上是在将存储库转换为DOA(数据访问对象)。 最后,如果您尝试使用坦克来获得队列,则不能使用通用存储库。您应该使用DbSet从数据库获取自定义查询。 在书中

  

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

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