Исключение нулевой ссылки QueryByAttribute (Dynamics CRM 2013)

У меня есть следующий код, который выполняет запрос на обнаружение дубликатов (успешно при просмотре через CRM), но когда я пытаюсь запросить результат задания на обнаружение, я получаю нулевую ссылку (объект не установлен в экземпляр объекта) при запуске последняя строка кода.

_response.jobid не равен нулю, и на данный момент соединение с CRM все еще действует, так как на этом этапе я запустил отдельный Entity.Retrieve (не включенный в код), чтобы убедиться. Может кто-нибудь, пожалуйста, скажите мне, чего мне не хватает? Этот код в значительной степени был взят из примера кода, но адаптирован для нашей пользовательской сущности.

            // Create the BulkDetectDuplicatesRequest object
            Console.WriteLine("Creating the BulkDetectDuplicatesRequest object");
            BulkDetectDuplicatesResponse _response;

            BulkDetectDuplicatesRequest request = new BulkDetectDuplicatesRequest()
            {
                JobName = "Detect Duplicate Supplier Invoices",
                Query = new QueryExpression()
                {
                    EntityName = "custentityname",
                    ColumnSet = new ColumnSet(true)
                },
                RecurrencePattern = String.Empty,
                RecurrenceStartTime = DateTime.Now,
                ToRecipients = new Guid[0],
                CCRecipients = new Guid[0]
            };

            // Execute the request
            Console.WriteLine("Executing BulkDetectDuplicatesRequest");
            _response = (BulkDetectDuplicatesResponse)_serviceProxy.Execute(request);

            try
            {
                BulkImportHelper.WaitForAsyncJobCompletion(_serviceProxy, _response.JobId);

                QueryByAttribute query8 = new QueryByAttribute()
                {
                    ColumnSet = new ColumnSet(true),
                };

                query8.Attributes.Add("asyncoperationid"); //from sample code
                query8.Values.Add(_response.JobId); //has  the job id of the duplicate detection job
                EntityCollection results8 = _serviceProxy.RetrieveMultiple(query8); //errors due to null reference exception 

}

Спасибо


person user2965112    schedule 23.10.2014    source источник
comment
возможный дубликат Что такое NullReferenceException и как его исправить это?   -  person eddie_cat    schedule 23.10.2014


Ответы (1)


QueryByAttribute требует указать имя объекта

пример для сущности аккаунт:

QueryByAttribute querybyattribute = new QueryByAttribute("account"); // account entity
querybyattribute.ColumnSet = new ColumnSet("name", "address1_city", "emailaddress1");
querybyattribute.Attributes.AddRange("address1_city");
querybyattribute.Values.AddRange("Redmond");
EntityCollection retrieved = _service.RetrieveMultiple(querybyattribute);
person Guido Preite    schedule 23.10.2014