CRM4.0プラグインの一部をCRM2011SDKを使用するように変換しています。LINQ for Early-Boundエンティティを使い始めたばかりで、問題が発生しました。
結合されたエンティティでOptionSetValueのフォーマットされた値を取得しようとしています。このMSDNSDKクエリの例を見た後、プライマリエンティティのフォーマットされた値を取得できましたが、それを結合されたエンティティに変換できないようです。
以下のコードは、私が達成しようとしていることのサンプルです。SDKの例のコードを使用することから始めました。
var query_join8 = (from a in sContext.AccountSet
join c in sContext.ContactSet
on a.PrimaryContactId.Id equals c.ContactId
into gr
from c_joined in gr.DefaultIfEmpty()
select new
{
contact_name = c_joined.FullName,
account_name = a.Name,
account_addresstypecode = a.Address1_AddressTypeCode,
account_addresstypename = a.FormattedValues.ContainsKey("address1_addresstypecode") ? a.FormattedValues["address1_addresstypecode"] : null,
account_formattedValues = a.FormattedValues,
contact_addresstypecode = c_joined.Address1_AddressTypeCode,
contact_addresstypename = c_joined.FormattedValues.ContainsKey("address1_addresstypecode") ? c_joined.FormattedValues["address1_addresstypecode"] : null,
contact_formattedValues = c_joined.FormattedValues,
}).ToArray();
account_formattedValuesとaccount_addresstypenameが修正され、そのデータにアクセスできますが、何らかの理由でcontact_formattedValuesアイテムに空のコレクションが含まれているため、contact_addresstypenameはnullです。
私はこれを間違って行っていますか、それとも何かを逃しましたか?誰かがこれを達成する方法を知っているか、できましたか?どんな助けでも大歓迎です。