добавление фильтра

почему при добавлении фильтра нельзя использовать значение поля NrbCity.Name?

                                    esqResult.AddAllSchemaColumns();

                                    esqResult.AddColumn("NrbCity.Name");           

                        var entity = esqResult.GetEntity(UserConnection, purchaseId);

этот код выполняется без ошибок.

а вот дальше:

esqMatching.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrCity", entity.GetColumnValue("NrbCity.Name").ToString());

ругается что 

Terrasoft.Common.ItemNotFoundException: 'Значение с именем "NrbCity.Name" не найдено'

что не так-то? как использовать значение этого поля дальше в другом фильтре?

Нравится

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

Добрый вечер.

 

Для работы с такой колонкой можно сохранить её название в переменную и потом обращаться по нему:

string cityColumnName = esqResult.AddColumn("NrbCity.Name").Name;
...
entity.GetColumnValue(cityColumnName).ToString();

Система формирует названия таких колонок по-другому, по-моему, через подчеркивание. Вот таким образом: 'NrbCity_Name'.

Попробуйте отладиться и посмотреть, какое название будет у этой колонки.

Добрый вечер.

 

Для работы с такой колонкой можно сохранить её название в переменную и потом обращаться по нему:

string cityColumnName = esqResult.AddColumn("NrbCity.Name").Name;
...
entity.GetColumnValue(cityColumnName).ToString();

Система формирует названия таких колонок по-другому, по-моему, через подчеркивание. Вот таким образом: 'NrbCity_Name'.

Попробуйте отладиться и посмотреть, какое название будет у этой колонки.

entity.GetColumnValue<string>("NrbCity.Name").Name

 

Dima Avdoshin,

это ничем не отличается от моего варианта

entity.GetColumnValue<string>("NrbCity.Name") - не будет найден

 

Алла Савельева,

да, спасибо! именно так все и оказалось.

Gladushkin Peter,

("NrbCity.Name").Name у вас приведение к стрингу, а у меня взято свойство Name , как Аллы показано при добавлении колонки
Показать все комментарии