Value was not found

Создал новое поле для секции Opportunity, тип - справочник.

Заполнил его, но через EntitySchemaQuery не могу вытащить значение.

Ловлю Exception с сообщением: Value "Usercolumn" was not found.



скрипт:

UserConnection _userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];

Guid paramID = new Guid(value.ToString());

var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "Opportunity");

 esq.AddAllSchemaColumns();

 esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Id", paramID));

              

var opportunityCollection = esq.GetEntityCollection(_userConnection);

var result= opportunityCollection[0].GetTypedColumnValue("Usercolumn");//Тут ловлю exception. Сам столбец успешно найден, но значение не цепляется.

В чём может быть проблема?

Нравится

3 комментария

Добрый день,

 

Прошу, не используйте AddAllSchemaColumns(), потому что иногда колонок в объекте может быть столько, что каждое обращение к БД запросом, который генерирует ESQ, будет БД "убивать".

 

Касательно exception: Вы в коде так и указали <sGuid> или это опечатка?

Oleg Drobina,

С первым замечанием понятно. Обычно делаю так:

esq.AddColumn("Usercolumn");

Все колонки вытаскивал, чтобы проверить есть ли там Usercolumn - она там есть.



Да, это опечатка. В коде - Guid. Прошу прощения.

Решение проблемы следующее:

этот Usercolumn - был типом Lookup. А значит вытаскивать его надо через Id.

- esq.AddColumn("Usercolumn.Id");

- opportunityCollection[0].GetTypedColumnValue<Guid>("Usercolumn.Id")

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