如何将NOEXPAND提示与Linq到SQL?
-
01-10-2019 - |
题
我有一个索引视图,我需要指定NOEXPAND提示,以使其合理地执行。不幸的是,从诺洛克提示将LINQ修改为SQL生成的T-SQL查询方面看来,似乎没有简单的方法可以直接利用这些提示,还是在那里?
我的想法是,通过使用属性或通过DBML声明来自定义这些东西是有意义的。同样,由于LINQ到SQL似乎只能针对SQL Server的工作,因此我们还可以利用这些高级功能(如果存在)是有道理的。无论实施如何,尽管我对解决此问题的任何创造性方法感兴趣。
解决方案
我找到了一个解决方法,似乎可以使用,但需要为每个SQL视图进行第二视图,以便使用NoExpand提示。在第二视图中,只需从原始视图中选择所有字段,然后在不提供的提示上选择。任何需要使用NOEXPAND提示的LINQ到SQL查询现在都可以针对包裹原始的视图。
可以在 这个MSDN帖子.
在创建依赖视图时,一个偏低的一面是要考虑的是,您必须确保在适当的依赖顺序中应用创建脚本
有人有更好的选择吗?我宁愿不必创建额外的SQL视图来支持此必要的优化器提示的使用。
其他提示
我完全同意,但我不相信有这样的方法。在EF4中,您可以使用 ExecuteStoreCommand
这将使您直接执行SQL。如果性能不可接受,那可能是您唯一的选择。
==编辑==
您也可以通过Linq到SQL进行此操作 ExecuteQuery
方法。
不隶属于 StackOverflow