NHibernate сравнивает местную дату год и месяц с коллекциями дат - PullRequest
0 голосов
/ 24 мая 2019

Я хотел бы сделать следующее:

tradingObjectQueryOver.Where(
  Restrictions
    .On<OrderDealDto>(d => d.UnderlyingContractMaturity.Value.ToContractName())
    .IsInG(filter.ContractDates.ToContractName()));

, где

public const string ContractNameFormat = "MMMyy";
public static string ToContractName(this LocalDate date)
{
    return date.ToString(ContractNameFormat, UsCulture).ToUpper();
}

, и поэтому я не могу вызвать d.UnderlyingContractMaturity.Value.ToContractName (), поскольку SQL ничего не знает о c #методы, такие как ToString.Какой самый простой способ исправить это, кроме TSQL-зависимых функций?

new SQLFunctionTemplate(NHibernateUtil.String, "FORMAT(?1, 'yyyMM', 'us-US')");

, но в то же время я не хочу снижать производительность, это всего лишь незначительная часть запроса, и она находится в масштабе100к-10м элементов в дБ.

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