我想知道如何/是否可以在 EF4.x 或 EF5 中使用 SQL Service Broker?
场景:假设我有一个产品列表,我不想每次客户访问页面时都从数据库加载它。当然我可以缓存页面,但是如果产品经理添加了新产品,它不会立即显示出来,直到缓存过期或查询参数发生变化。
解决方案:在 SQL 中,我们可以 Enable_Broker 并在 web 应用程序中启动链接 SqlDependency。SQL 将向我们的 Web 应用程序发送通知。因此,我们有一个智能的“缓存”系统。如果我们可以使用那个智能缓存,这一切都说得通。当有 1,000 个客户点击该页面时,我们不需要访问 SQL db 1,000 次。但是一旦数据库发生变化,当时访问该页面的第一个客户就会看到反射。我们两全其美。
问题:实体框架未公开此功能。还是我不知道?由于 SQL 2005 和 ASP.NET 2.0 已经具备了这种能力。EF 4/5 不能错过这个重要功能,对吧?我需要一些专家来帮助我解决这个问题。
我碰巧从这个链接中找到了一个黑客:
http://www.codeproject.com/Articles/233770/AutoRefresh-Entity-Framework-data-using-SQL-Server
然而,它或多或少是一种“无证魔法”的方式,它有一些未知的限制(该页面的限制链接已被删除,所以我不知道它们是什么)。所以,它对我来说使用起来不够可靠,如果它在一个新的 EF 补丁后突然不起作用,我也不会感到惊讶。有没有更“官方”的方式来做到这一点?谢谢!