Вопрос

Как в запросе Select(orm) установить локализацию

Есть следующий код, который забирает Описание из справочника, но почему то забирает он его всегда из английской культуры, при этом esq запрос забирает из той под которой последний раз был зареган юзер. как принудительно установить кльтуру для такого запроса? 

var name = String.Empty;
            var select = (Select)new Select(UserConnection)
              .Column("Description")
              .From("Terminal")
              .Where("AiroportId")
              .IsEqual(Column.Parameter(airId));
            select.ExecuteReader(dataReader =>
            {
              name = dataReader.GetColumnValue<string>("Description");     
            });

 

Нравится

1 комментарий
Лучший ответ

Правильно, это значит, что в БД в этой колонке по умолчанию хранится значение в английской локализации (потому что так мы напрямую в БД идем, чтобы получить значение). Явного параметра, который автоматически выбирал локализированное значение я не нашел, но можно сделать так:

 

1) В рамках текущего запроса выбрать Id записи по текущим условиям фильтрации .Where("AiroportId")

              .IsEqual(Column.Parameter(airId));

2) Пойти в таблицу "SysTerminalLcz" и там по колонке RecordId найти локализированные значения + довешать еще фильтр на колонку SysCultureId.

3) Вычитать значение из колонки Description в SysTerminalLcz.

Правильно, это значит, что в БД в этой колонке по умолчанию хранится значение в английской локализации (потому что так мы напрямую в БД идем, чтобы получить значение). Явного параметра, который автоматически выбирал локализированное значение я не нашел, но можно сделать так:

 

1) В рамках текущего запроса выбрать Id записи по текущим условиям фильтрации .Where("AiroportId")

              .IsEqual(Column.Parameter(airId));

2) Пойти в таблицу "SysTerminalLcz" и там по колонке RecordId найти локализированные значения + довешать еще фильтр на колонку SysCultureId.

3) Вычитать значение из колонки Description в SysTerminalLcz.

Показать все комментарии