在 Linq2DB 中缓存

Posted

技术标签:

【中文标题】在 Linq2DB 中缓存【英文标题】:Caching in Linq2DB 【发布时间】:2021-03-12 15:40:33 【问题描述】:

Linq2DB ORM 是否支持查询结果缓存 - 一级或二级?我注意到命名空间LinqToDB.Common.Internal.Cache,这是否意味着使用应用程序必须通过自定义缓存管理器构建缓存?

【问题讨论】:

【参考方案1】:

好吧,linq2db 旨在处理查询而不是对象管理。缓存是一个非常特殊的案例,它引入了很多副作用。例如,如果您更改了某些字段并且缓存包含此类记录 - 您必须使缓存无效,否则系统将返回过时的数据。使缓存失效是这里最困难的部分。

无论如何,有第三方库可以为您做到这一点: LinqCache

可能还有其他库可以做类似的事情。

【讨论】:

你知道当数据访问是只读的时候是否有本地支持缓存(可能通过LinqToDB.Common.Internal.Cache)? 这个命名空间用于缓存映射器,翻译查询。我是一个。 linq2db 的创建者,相信我 - 缓存对象没有任何意义。

以上是关于在 Linq2DB 中缓存的主要内容,如果未能解决你的问题,请参考以下文章

Linq2DB 无法翻译 Where 子句中的映射列

Linq2DB之研究和探索

linq2db Sqlite Insert之后获取插入的自增量ID值

linq2db 异常:“未提供配置字符串”。我没有 web/app.config,但即使我明确给出字符串,同样的异常

java中缓存分类总结

1.微服务管理-11.缓存-3.实践-缓存使用