我有一个索引视图,我需要指定NOEXPAND提示,以使其合理地执行。不幸的是,从诺洛克提示将LINQ修改为SQL生成的T-SQL查询方面看来,似乎没有简单的方法可以直接利用这些提示,还是在那里?

我的想法是,通过使用属性或通过DBML声明来自定义这些东西是有意义的。同样,由于LINQ到SQL似乎只能针对SQL Server的工作,因此我们还可以利用这些高级功能(如果存在)是有道理的。无论实施如何,尽管我对解决此问题的任何创造性方法感兴趣。

有帮助吗?

解决方案

我找到了一个解决方法,似乎可以使用,但需要为每个SQL视图进行第二视图,以便使用NoExpand提示。在第二视图中,只需从原始视图中选择所有字段,然后在不提供的提示上选择。任何需要使用NOEXPAND提示的LINQ到SQL查询现在都可以针对包裹原始的视图。

可以在 这个MSDN帖子.

在创建依赖视图时,一个偏低的一面是要考虑的是,您必须确保在适当的依赖顺序中应用创建脚本

有人有更好的选择吗?我宁愿不必创建额外的SQL视图来支持此必要的优化器提示的使用。

其他提示

我完全同意,但我不相信有这样的方法。在EF4中,您可以使用 ExecuteStoreCommand 这将使您直接执行SQL。如果性能不可接受,那可能是您唯一的选择。

==编辑==

您也可以通过Linq到SQL进行此操作 ExecuteQuery 方法。

http://msdn.microsoft.com/en-us/library/bb399403.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top