我正在 WPF 应用程序中进行一些搜索优化。
有一个搜索 XAML 视图,它使用带有
IQueryable
的 SQL Server 视图。
在SQL Server中,当我从视图中获取
OPTION(QUERYTRACEON 8649)
部分时,我可以使用SELECT
,但在视图本身中,我不能使用它。这 OPTION
使我的查询速度提高了 3 倍以上。我每次执行它都会清除缓存。
由于此 SQL Server 视图的限制,我需要以某种方式将其添加到 C# 代码中。
那么,我怎样才能添加这个
OPTION
以在 IQueryable
中使用?
您可以使用拦截器添加查询提示。
阅读此 sample by microsoft 的详细信息。
另外,你必须像这样注册拦截器类。
private void DependencyInjection(IServiceCollection services)
{
services.AddDbContext<SampleDbContext>(options =>
options.UseSqlServer("some connection string")
.AddInterceptors(new TaggedQueryCommandInterceptor())
);
}