Предположим, что следующая таблица MyObjects
:
Id (PK, int)
DecimalField (decimal)
TextField (nvarchar)
Я добавил дополнительный индекс для DecimalField
.
Рассмотрим следующий запрос LINQ to Entities для получения объекта:
db.MyObjects.FirstOrDefault(r => r.DecimalField == localValue1 && r.TextField == localValue2)
Из-за индекса важно, чтобы сгенерированный EF запрос сохранял порядок свойств в предложении WHERE (т. Е. DecimalField
first и TextField
second), иначе таблицасканирование произойдет, и индекс бесполезен.Как я могу заставить EF соблюдать определенный порядок в предложении WHERE?И есть ли разница между специальными и скомпилированными запросами?