我在我的 ASP.NET MVC 应用程序中使用 LINQ 查询,并希望在我的一些操作中使用 OutputCache。
我听说这应该可以通过 CommandNotifications 实现。但那些似乎只适用于自创的 SQLCommands,还是我错了?
如果某些表发生更改,我可以手动告诉 SQL 服务器发送 SQLDependency 通知吗?如果是,我怎样才能将它们附加到 OutputCache?
另一个问题:你也可以使用强类型视图来做到这一点吗?
先感谢您...
我在我的 ASP.NET MVC 应用程序中使用 LINQ 查询,并希望在我的一些操作中使用 OutputCache。
我听说这应该可以通过 CommandNotifications 实现。但那些似乎只适用于自创的 SQLCommands,还是我错了?
如果某些表发生更改,我可以手动告诉 SQL 服务器发送 SQLDependency 通知吗?如果是,我怎样才能将它们附加到 OutputCache?
另一个问题:你也可以使用强类型视图来做到这一点吗?
先感谢您...
您可以试一试 LinqToCache项目。只要发送到 SQL Server 的查询符合Query Notification 限制,它就会完全按照您的要求进行,在任何LINQ 查询上挂钩 SqlDependency 。对于 Linq-to-SQL,这主要包括在模型设计器中为表指定完整的两部分名称(即not only )。不幸的是,对于 Linq-to-EF,EF 选择格式化查询的方式与 QN 限制不兼容。dbo.Table
Table
但那些似乎只适用于自创的 SQLCommands,还是我错了?
我会说它们仅对“自创”命令有用,因为这些是您可以提前知道的唯一命令。如果您想为特定的 LINQ 查询创建通知,那么您只需在代码中随查询一起调用该方法。
如果某些表发生更改,我可以手动告诉 SQL 服务器发送 SQLDependency 通知吗?
当然。发出通知:
SELECT * FROM TABLENAME;
如果是,我怎样才能将它们附加到 OutputCache?
创建一个命令,创建一个缓存依赖项,并在添加到缓存时引用它。像往常一样在 global.asax.cs 中初始化依赖通知。
你也可以用强类型视图来做到这一点吗?
没有意义。在 MVC 中,您不应该在视图中进行数据访问。