实体框架 - 计算条目

时间:2018-04-12 17:33:23

标签: entity-framework .net-core entity-framework-core

将分页添加到数据库实体的(dotnet EntityFramework Core)表中,我想显示一条消息,例如“显示Z的项目X到Y”,其中Z是被分页表中项目的总数。 / p>

目前,我将writeAndFlushDbSet的条目总数提取为DbContext

从好的方面来说,这是可行的(模块可以对dbContext.Things.Count()的表进行持续的并行更新,但这对我来说足够接近了。)

另一方面,我担心它可能不是特别有效,即使它可能会尝试将项目加载到内存中。很明显,通过分页,我只需要加载少量项目来显示当前页面。

我的数据库是postgresql 9.5,可以通过Npsql访问。

所以我的问题是:有没有人知道这种方法有任何陷阱?

1 个答案:

答案 0 :(得分:1)

事实证明,对于Postgres,Count可能是O(n)操作...... https://wiki.postgresql.org/wiki/Count_estimate

尝试here有一些技巧,其中涉及以产生估计和/或减慢写入的惩罚执行SQL。

我的这张表写得比阅读的频率高得多,所以暂时Count暂时会做。{/ p>