如果我计划使用数据缓存,我还要在使用延迟加载时担心冲突吗?似乎用linq我失去了对数据的控制。
答案 0 :(得分:2)
LinqToSql和EntityFramework都提供了这两种功能(延迟加载和数据缓存)。
例如,如果您最初加载客户,则该客户将被缓存,如果您再次要求它,您将获得相同的实例。
如果在初始加载期间未加载客户订单,则该Customer实例的Orders属性将处于卸载状态。当您加载这些订单时,订单实例将通过该属性提供。
在这两种技术中,Context都是执行缓存的东西......因此,如果您使用多个Context实例 - 您可以观察到真正代表同一客户的不同Customer实例。
在评论中解决您的问题。我将谈论LinqToSql,但这些东西也应该在EntityFramework中工作。
如果我关闭延迟加载,我认为数据缓存仍然有效吗?
是的,那会有效。但是,它们并非完全独立。
是数据缓存刷新,取决于数据表和/或时间是否有变化?
没有刷新或重置缓存。如果你想要一个新的缓存,要做的是创建一个新的DataContext。每个DataContext实例都有自己的缓存。