Чтобы набросать контекст:
Я занимаюсь рефакторингом этого приложения, которое имеет проблемы с производительностью, поскольку оно имеет много агрегированных значений. В настоящее время результаты были реализованы в виде вычисленных значений внутри столбцов (https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-2017)., что на первый взгляд звучит неплохо, но при злоупотреблении может оказать огромное влияние на производительность (в данном случае).
Проблема:
Мне нужны агрегированные результаты в моем приложении, но я не вижу подходящего способа сделать это. В настоящее время у меня есть этот оптимизированный запрос для сущности, но проблема в том, что мне нужно переписать все, и я теряю ленивую загрузку (и другие стандартные функции). Потому что в настоящее время я сопоставил этот запрос с виртуальной сущностью, чтобы отобразить его на экране, но он ограничивает меня, поскольку у меня нет доступных отношений и т. Д.
Так что в идеале должен быть способ, которым я мог бы использовать свою сущность в режиме гибернации и при этом иметь производительность оптимизированного запроса. Или что я могу переписать поведение хранилища по умолчанию, чтобы всегда использовать этот запрос для извлечения его из базы данных. Вопрос, конечно, это возможно?
Редактировать: Я знаю существование аннотации @Formula, но это будет просто означать, что мы переместим логику запроса из вычисляемого столбца в спящий режим и что он запустит подзапросы (поэтому я предполагаю, что он выиграл не решить проблему)