Расширение IQueryable для генерации запросов к временной таблице "AS OF" - PullRequest
0 голосов
/ 05 ноября 2018

Не найдя удовлетворительного решения, позвольте мне опубликовать это здесь:

Мы используем NHibernate в качестве нашей ORM и только начинаем использовать временные таблицы Sql Server. Поэтому нам нужно какое-то расширение к IQueryable (или HQL Builder, или InterceptingProvider, или что-то ), которое позволит нам добавить предложение «AS OF» к нашим запросам, что-то вроде

var results = session.Query<Company>
.Where(c => c.Name == "FogCreek")
.AsOf(DateTime.Today.AddYears(-1));

1 Ответ

0 голосов
/ 09 ноября 2018

Я тоже с этим боролся и сдался, потеряв слишком много времени, пытаясь найти лучший подход ...

До сих пор я вводил FOR SYSTEM_TIME AS OF в SQL, используя пользовательский HqlGeneratorForMethod, но это дало мне недопустимое выражение SQL. Поэтому мне пришлось исправить это в OnPrepareStatement. Это хакерское и не элегантное решение, но оно подходит для большинства простых случаев.

Пожалуйста, посмотрите на мое решение здесь и не стесняйтесь отвечать, если найдете лучшее решение

...