Задача: пытаюсь получить продукты-заменители некоторого продукта через стадартную связь productsubstitute_association.
Но получается выбрать только ВСЕ продукты в системе, которые являются кому-нить заменителем, а если вводить фильтр на продукт источник (тот, которому надо найти заменители), то возвращается пустая коллекция:
Код:
ConditionExpression condSubstitute = newConditionExpression();
condSubstitute.AttributeName = "productid";
condSubstitute.Operator = ConditionOperator.Equal;
condSubstitute.Values = newobject[] { newGuid("8C28A112-0110-DF11-A6A0-000C29F68112") }; // ID продукта, у которого надо найти заменители
FilterExpression filterSub = newFilterExpression();
filterSub.Conditions = newConditionExpression[] { condSubstitute };
LinkEntity linkToProdObj = newLinkEntity();
linkToProdObj.LinkFromEntityName = "product";
linkToProdObj.LinkFromAttributeName = "productid";
linkToProdObj.LinkToEntityName = "productsubstitute";
linkToProdObj.LinkToAttributeName = "productid";
LinkEntity linkToProdSubstObj = newLinkEntity();
linkToProdSubstObj.LinkFromEntityName = "productsubstitute";
linkToProdSubstObj.LinkFromAttributeName = "productid";
linkToProdSubstObj.LinkToEntityName = "product";
linkToProdSubstObj.LinkToAttributeName = "productid";
linkToProdSubstObj.LinkCriteria = filterSub;
linkToProdObj.LinkEntities = newLinkEntity[] { linkToProdSubstObj };
QueryExpression query = newQueryExpression();
query.EntityName = EntityName.product.ToString();
query.ColumnSet = colsSubstitute;
query.LinkEntities = new LinkEntity[] { linkToProdObj };
BusinessEntity[] bus = service.RetrieveMultiple(query).BusinessEntities;
Может логика не верна? Пробовал переставлять линки/фильтры - результат тот же. Помогите плз.