Наш SQL DBA указал, что EF генерирует некоторый SQL, который вызывает неявное преобразование и приводит к некоторым проблемам с производительностью. Когда я запускаю веб-приложение локально, я вижу другой запрос, который генерирует сервер стадии/производства. Я предполагаю, что существуют различия EF между моим блоком dev и сервером и вам нужна помощь в определении того, где искать. Я проверил запросы в SQL Profiler.Различия в сгенерированном SQL - от локального до производственного сервера
Local: Windows 7, 64-разрядная версия, IIS 7
серверов: Windows Server 2003, 32-разрядная версия, IIS 6
Linq заявление (входящий является список типа строки):
var result = from i in context.ProductImages
where incoming.Contains(i.productID)
select i;
var sql = ((System.Data.Objects.ObjectQuery)result).ToTraceString();
return result.ToList();
Локальный генерируется запрос:
SELECT [Extent1].[column1],
[Extent1].[column2],
..rest of columns...
WHERE [Extent1].[productID] IN ('000176725','000176726','000176728')
Сгенерированный сервером запрос:
SELECT [Extent1].[column1],
[Extent1].[column2],
..rest of columns...
WHERE [Extent1].[productID] IN (N'000176725',N'000176726',N'000176728')
Любые идеи о том, где искать, чтобы определить, что вызывает разницу в генерации? «N» вызывает проблему производительности.
Насколько я могу судить, длл System.Data.Entity это та же версия (4.0.30319.1)
Уверен, что на сервере работает реальная .NET Framework 4, а на вашем ящике установлена .NET Framework 4.5. (обратите внимание, что версия System.Data.Entity.dll будет одинаковой). В EF была ошибка, которая была исправлена в EF5/.NET Framework 4.5, и поскольку .NET Framework 4.5 была обновлением на месте, исправление автоматически подбирается приложениями, использующими EF4. – Pawel
Думаю, ты прав. Я ценю дополнительную информацию о том, как произошло исправление/обновление ошибок. К сожалению, я не могу установить 4.5 на теперь неподдерживаемые коробки. Наше обновление 2012 года развертывается в следующем месяце - я тестировал эти запросы, и они возвращаются аналогично моей машине. Если бы вы ответили как ответ, я бы с радостью отметил его как таковой. Спасибо! –