У меня есть Album
сущность, в которой есть IList<Photo>
.Я хочу выбрать все мои альбомы с количеством фотографий одним быстрым запросом с помощью NHibernate.Перед миграцией в NH у меня был запрос с использованием индексированного представления:
SELECT a.*, t.PhotoCount
FROM dbo.Album a
LEFT JOIN dbo.vw_AlbumPhotoCount t ON t.AlbumID = a.AlbumID
Как я могу использовать это представление (vw_AlbumPhotoCount
) в NHibernate для ускорения запроса?
ОБНОВЛЕНИЕ: Я отобразил простую <one-to-one/>
сущность, как советовал Алекс, и она сработала для меня.Один недостаток этого решения - поскольку one-to-one
свойства не могут быть загружены лениво, я всегда получаю LEFT JOIN
при получении альбома по id.Я не мог сопоставить эту сущность как <many-to-one/>
свойство, я не уверен, почему, может быть, потому что представление не имеет своего собственного свойства ID.В любом случае, часто отображая его как <many-to-one/>
Я получил нулевое значение после загрузки альбома
ОБНОВЛЕНИЕ 2: Я пересмотрел свою архитектуру и решил удалить представление.Лучший способ в этой конкретной ситуации - использовать систему кэширования NH вместо индексированного представления