NHibernate несовместимый псевдоним столбца SQL - PullRequest
10 голосов
/ 20 февраля 2012

Если посмотреть на наши запросы из NHibernate, становится ясно, что псевдоним столбца не согласован, что проблема для производительности, когда план выполнения сервера sql видит тот же запрос, что и другой запрос, из-за несовместимого псевдонима столбца.

Примером может быть что-то вроде этого:

SELECT this_.Id as Id44_0_ FROM dbo.[Foos] this_

SELECT this_.Id as Id43_0_ FROM dbo.[Foos] this_

Есть ли какой-нибудь способ сделать последовательный псевдоним столбца?

Мы используем Fluent NHibernate с автоматическим отображением

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Опционально, установив проекцию, вы можете получить произвольное имя в качестве псевдонима в запросе следующим образом

Projections.Property("candidate.Name"), "CandidateName");

Как использовать проекции NHibernate для получения коллекции

0 голосов
/ 23 марта 2012

Я никогда не видел один и тот же запрос NH для генерации другого SQL во время работы вашего приложения. Я думаю, вам не нужно беспокоиться о производительности из-за этого. (За исключением случая, когда вам нужно часто запускать и останавливать приложение.)

Любые изменения, которые необходимы для обеспечения согласованности запросов SQL все время (даже после изменений модели данных), являются болезненными, не совсем удачными решениями, и я думаю, что они неприемлемы для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...