Я использую Fluent NHibernate в Oracle, и моя проблема заключается в том, что я должен применять функцию lower () к каждой строке в тех условиях. Я сделал свой собственный диалект, который использует нижнюю функцию Oracle nls_lower. База данных в основном используется Microsoft Dynamics AX, и эта функция повышает производительность. В стандартном запросе, как это все работает нормально:
session.QueryOver<User>()
.Where(x => x.Name.lower() == userName.lower())
.SingleOrDefualt<User>();
Но как я могу применить эту функцию lower () в ссылках? Я не могу найти ничего подходящего для этого, и я ожидаю, что это можно сделать как-нибудь. Я ожидал что-то подобное в классе картирования, но не могу найти это:
References<Settings>(x => x.Settings)
.Column("SettingId").lower();
Я не хочу немедленно преобразовывать мою строку в нижний регистр, но мне действительно нужно сгенерировать запрос, подобный этому:
select * from User where nls_lower(Name) == nls_lower("somename");
Спасибо!