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." 

質問:それはRegardingObjectId.NameによってEmailSetを照会することは可能ですか?

私はこのプロパティについて特別なことは何も見ませんが、うまくいけば、誰かが私にこれを手伝うことができます。

答えて

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>(); 
関連する問題