0

我在我的 ASP.NET MVC 应用程序中使用 LINQ 查询,并希望在我的一些操作中使用 OutputCache。

我听说这应该可以通过 CommandNotifications 实现。但那些似乎只适用于自创的 SQLCommands,还是我错了?

如果某些表发生更改,我可以手动告诉 SQL 服务器发送 SQLDependency 通知吗?如果是,我怎样才能将它们附加到 OutputCache?

另一个问题:你也可以使用强类型视图来做到这一点吗?

先感谢您...

4

2 回答 2

2

您可以试一试 LinqToCache项目。只要发送到 SQL Server 的查询符合Query Notification 限制,它就会完全按照您的要求进行,在任何LINQ 查询上挂钩 SqlDependency 。对于 Linq-to-SQL,这主要包括在模型设计器中为表指定完整的两部分名称(即not only )。不幸的是,对于 Linq-to-EF,EF 选择格式化查询的方式与 QN 限制不兼容。dbo.TableTable

于 2010-08-02T03:35:59.597 回答
0

但那些似乎只适用于自创的 SQLCommands,还是我错了?

我会说它们仅对“自创”命令有用,因为这些是您可以提前知道的唯一命令。如果您想为特定的 LINQ 查询创建通知,那么您只需在代码中随查询一起调用该方法。

如果某些表发生更改,我可以手动告诉 SQL 服务器发送 SQLDependency 通知吗?

当然。发出通知:

SELECT * FROM TABLENAME;

如果是,我怎样才能将它们附加到 OutputCache?

创建一个命令,创建一个缓存依赖项,并在添加到缓存时引用它。像往常一样在 global.asax.cs 中初始化依赖通知。

你也可以用强类型视图来做到这一点吗?

没有意义。在 MVC 中,您不应该在视图中进行数据访问。

于 2010-05-04T14:53:44.633 回答