Как я могу фильтровать атрибуты из связанной сущности, вне LinkEntity? - PullRequest
0 голосов
/ 14 марта 2011

Я хотел бы сделать сложный запрос, мне все равно, что это fetchXML или queryexpression, если он работает: -)

Я хочу создать любой запрос с NOT IN(выберите из) структуру или ее эквивалент LEFT OUTER JOIN с использованием WHERE NULL.

Запрос выглядит примерно так:

SELECT t1.*
FROM table1 t1
LEFT OUTER JOIN table2 t2 ON t1.xid = t2.id
WHERE t2.id IS NULL

(структура запроса с примером: http://blog.sqlauthority.com/2008/04/22/sql-server-better-performance-left-join-or-not-in/)

Как видите, хитрый бит - это "t2.id" в предложении where. Я не нашел способа отфильтровать это значение с помощью каких-либо инструментов или документов. Возможно ли это вообще?

1 Ответ

1 голос
/ 14 марта 2011

Это одна из вещей, которая невозможна с запросами CRM. Существуют (не обязательно работающие) альтернативы:

  • Извлечение соответствующих значений из t2 и запрос t1 с помощью ConditionOperator.NotIn (в случае, если NotIn действительно поддерживается; не все доступные значения ConditionOperator действительно могут быть обработаны CrmService).
  • Полностью получить обе таблицы и объединить их в памяти (используя LINQ или подобное).
  • Выполните фактическое соединение через SQL (что, конечно, требует прямого доступа к базе данных), верните только идентификаторы и получите результат через CrmService.
...