Следующий код работать отказывается.
Валится на этапе создания фильтра.
В ShowBDMessage ЕСТЬ колонка User (как показывается имя в BPM) или UserId (как показывает MS SQL). Как ни называй, результат один:
Exception Message: Элемент коллекции с именем UserId не найден
или
Exception Message: Элемент коллекции с именем User не найден
Кто нибудь может объяснить почему?
var esqShowBDMessage = new EntitySchemaQuery(esqManager, "ShowBDMessage");
esqShowBDMessage.AddColumn("ShowDate");
var currentUserContactId = UserConnection.CurrentUser.ContactId;
var userIdFilter = esqShowBDMessage.CreateFilterWithParameters(FilterComparisonType.Equal, "User", currentUserContactId);
esqShowBDMessage.Filters.Add(userIdFilter);
Нравится
Вопрос снят, решил через Select.
Select select = new Select(UserConnection) .Column(Column.Asterisk()) .From("ShowBDMessage") .Where("UserId").In(Column.Const(strUserId)) as Select; EntityCollection messages = new EntityCollection(UserConnection, "ShowBDMessage"); messages.Load(select.ExecuteReader(UserConnection.EnsureDBConnection()));
но почему такое с ESQ происходит все-таки загадка....
Можно попробовать так:
var query = new EntitySchemaQuery(manager, "Account"); ///////// var currentAccountId = query.AddColumn(query.RootSchema.PrimaryColumn.Name); ///////// var accountPhone = query.AddColumn("Phone").Name; var queryResult = query.GetEntityCollection(UserConnection);
Возможно, нужно было добавить в ESQ и колонку, по которой будет фильтр:
query.AddColumn("User.Id");
Колонку добавлял, не помогало, ошибка была та же.
Кстати, вообще все колонки добавлял :smile:
Последний вариант у меня, это попробовать User.Id...
esqShowBDMessage.CreateFilterWithParameters(FilterComparisonType.Equal, "User.Id", currentUserContactId);
Попробую на досуге, сейчас нет времени, да и закрыл вопрос, как писал выше ,через select.