Надеясь, что кто-то может пролить некоторый свет с точки зрения производительности при использовании OrganizationServiceContext.CreateQuery
против FetchXML
(или QueryExpression
).OrganizationServiceContext.CreateQuery vs Fetch
Я широко использовал LINQ
, но новичок в CRM. CreateQuery
кажется подходящим для моего набора навыков, но я думаю о производительности в конце.
Я понимаю, что прямо
var result = from e in orgContext.CreateQuery("xyz_myentity")
where e["email"] == "[email protected]"
select e;
возвращает все атрибуты для xyz_myentity
, но я не могу найти какую-либо документацию для поставщика LINQ, который сидит на вершине CRM. Будет ли использовать атрибуты ограничения анонимного типа, возвращаемые из SQL/CRM? Или магия делается «клиентской» стороной после того, как полный набор данных возвращается с сервера? Является ли SQL-запрос для всех атрибутов, а затем поставщиком LINQ, создающим анонимный тип поверх этого?
var result = from e in orgContext.CreateQuery("xyz_myentity")
where e["email"] == "[email protected]"
select new { Name=e["xyz_name"] };
Существуют ли какие-либо другие соображения, связанные с введением OrganizationServiceContext
?
Спасибо за информацию. Любые дополнительные ссылки, на которые вы можете указать мне? – andleer
Вот хорошее сравнение между вариантами запроса: https://blogs.msdn.microsoft.com/crminthefield/2013/01/14/dynamics-crm-2011-sdk-query-limitations-by-api/ –
Другая статья о конверсии запросов LINQ к QueryExpressions можно найти здесь: https://code.msdn.microsoft.com/Convert-CRM2011-Linq-into-93a163ee. –