У меня заработал такой код:
Код:
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = "Microsoft";
CrmService crmservice = new CrmService();
crmservice.CrmAuthenticationTokenValue = token;
crmservice.UseDefaultCredentials = true;
crmservice.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) + "/2007/crmservice.asmx";
QueryExpression query = new QueryExpression(EntityName.product.ToString());
LinkEntity linkentity = query.AddLink("productsubstitute", "productid", "productid");
linkentity.LinkCriteria.AddCondition("substitutedproductid", ConditionOperator.Equal, new Guid("121F4274-3E13-DF11-91AF-0003FFD0167C"));
query.ColumnSet = new AllColumns();
List<BusinessEntity> list = crmservice.RetrieveMultiple(query).BusinessEntities;
Также не забывайте, что в реалиях CRM если продукт Б является заменителем продукта А, то это не означает, что продукт Б будет заменителем продукта А.