2016-07-21 1 views
1

Я создал консольное приложение для извлечения информации из «Dyanmics CRM 2016». Я использую XrmServiceContext для получения данных, и я могу извлекать информацию из разных объектов, но у меня возникают проблемы при получении EmailSet по определенному свойству.CRM 2016 Отправить письмо по RegardingObjectId.Name не работает

мой код:

//This works 
var test= context.EmailSet.FirstOrDefault(e => e.RegardingObjectId.Id == Guid); 
//This doesn't work 
var test= context.EmailSet.FirstOrDefault(e => e.RegardingObjectId.Name == "somename");  

эта линия бросает исключение:

"Invalid 'where' condition. An entity member is invoking an invalid property or method." 

Вопрос: Можно ли запросить EmailSet по RegardingObjectId.Name?

Я не вижу ничего особенного в этой собственности, надеюсь, кто-то может мне помочь в этом.

ответ

0

К сожалению, у Linq To CRM есть некоторые недостатки, однако вы можете использовать fetchxml, который немного более гибкий.

var results = service.RetrieveMultiple(
        new FetchExpression(
         string.Format("<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" + 
         "<entity name='email'>" + 
         "<attribute name='subject' />" + 
         "<filter type='and'>" + 
         "<condition attribute='regardingobjectidname' operator='eq' value='{0}' />" + 
         " </filter>" + 
         "</entity>" + 
         "</fetch>", "foobar"))); 

var emails = results == null 
    ? new List<Email>() 
    : results.Entities.Cast<Email>(); 
Смежные вопросы