Я бы предпочел, чтобы EF6 просто рассматривайте эту конкретную переменную как константу и создайте отдельный план выполнения для каждого значения (это Int, который может иметь одно из 5 различных значений).
Linq, который создает переменная в запросе выглядит так:
Код: Выделить всё
query = query.Where(x => x.DBColumn == abc); //abc is an int variable
Изменить: я использую MS SQL Server 2016
Позже изменить: мы закончили использовать DBCommandInterceptor с OPTION (RECOMPILE), как в разделе «Как добавить OPTION RECOMPILE в Entity Framework».
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-constant
Мобильная версия