Показать сообщение отдельно
Старый 06.02.2010, 17:05   #1  
Alir is offline
Alir
Участник
 
47 / 14 (1) ++
Регистрация: 02.08.2008
Адрес: Санкт-Петербург
Не получается выбрать нужные продукты-заменители
Задача: пытаюсь получить продукты-заменители некоторого продукта через стадартную связь 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;
Может логика не верна? Пробовал переставлять линки/фильтры - результат тот же. Помогите плз.