我们有一个在 linq to sql 中实现的项目,并且正在使用适配器模式迁移到 LLBLGenPro 运行时。
该应用程序的第一个版本进行了大量缓存,将整个表放入 httpcache,然后在代码隐藏中进行所有链接。(叹)
所以你会得到类似的东西:
from p in MyCacheObject.ProductPages
join cmpp in MyCacheObject.ProductContentMemberships on p.ProductPageId equals cmpp.ProductContentId
join pl in MyCacheObject.ProductPlans on cmpp.ProductLinkId equals pl.ProductPlanId
现在,在我们的新存储库模式中,我可以使用预取路径构建此类连接。您只需调用 myRepository.GetProductPagesWithContentMemberships() 并获取带有 ProductContentMemberships 集合的 ProductPage 实体。
当我们与数据库交谈时这很好,但有时我如何从缓存实体集合中提取?我想缓存这些表,然后用它们来构建我的复杂对象。
我可以让“从缓存中获取”与“从数据库中获取”成为 repo 可以做出的决定,但我希望我不必编写两个完全不同的 GetProductPagesWithContentMemberships() 实现:一个从数据库获取,一个从数据库获取使用缓存。
我希望有某种魔术适配器可以使用,它将针对对象缓存执行我的 linq,而不是将其发送到 SQL 服务器。有这样的事吗?
这篇文章:http ://www.llblgen.com/tinyforum/Messages.aspx?ThreadID= 6265 暗示这是可能的,但仅此而已。