2015-11-13 3 views
0

Недавно мы перенесли одно из наших приложений из модели EF4 в EF6 Code First, используя ODP.NET 12.1. Мы видим запросы, которые ранее использовали поиск индексов, выполняли полное сканирование таблицы. Наш администратор базы данных обновил статистику, но запросы по-прежнему выполняют сканирование таблиц. В журналах мы видим, что параметры передаются как объекты, а не как собственные типы данных. Может ли это вызвать проблему и как заставить EF/ODP.NET вводить параметры так же, как и столбцы db?EF6 Code First ODP.NET Параметры - это объекты

ответ

0

Проблема заключается в том, что .NET обрабатывает строки как Unicode, но наши столбцы VARCHAR, поэтому для каждого запроса требуется преобразование типа, которое заставляет базу данных выполнять полное сканирование таблицы вместо использования индексов.

Наше решение было явно ввести столбец как не-Unicode:

Property(p => p.VARCHAR_COLUMN).IsUnicode(false); 
Смежные вопросы