在 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 Sqlite Insert之后获取插入的自增量ID值