我使用dapper将数据库中的对象作为IEnumerable返回。默认情况下,dapper将缓冲区设置设置为true。
这是怎么回事?
如果dapper缓存第一个查询,然后从内存中获取对象。
如果有人在表中编辑/删除/添加行,会发生什么情况?对于这个查询,dapper必须重新缓存所有数据吗?
发布于 2012-10-23 16:51:34
缓冲区与缓存无关。Dapper不包括任何类型的数据高速缓存(尽管它确实具有与其如何处理命令相关的高速缓存,即“该命令字符串、具有这种类型的参数和这种类型的实体-具有这些关联的动态生成的方法来配置命令和填充对象”)。
这个开关的真正含义是:
false:会在项目被接收/消费时进行迭代--基本上就是一个围绕yielded打开的
true (缺省设置):在将数据交回给您之前,数据会被完全消耗到一个行中:您可以想迭代多少次就迭代多少次
的影响最小
大多数查询只返回中等数量的数据(比方说,少于100条记录),所以我们很高兴默认的(true)为大多数场景提供了最合适的行为。但我们为您提供了该选项,以满足不同的使用场景。
https://stackoverflow.com/questions/13026558
复制相似问题