crmsvcutil で早期バインド タイプを生成せずに、カスタム エンティティ属性を取得する方法を探しています。
私の問題の解決策はありますか?
crmsvcutil で早期バインド タイプを生成せずに、カスタム エンティティ属性を取得する方法を探しています。
私の問題の解決策はありますか?
CRM からエンティティ データを取得するために事前バインド型を生成する必要はありません。Entity と呼ばれるタイプを使用できます (CRM4 の DynamicEntity に似ています)。
SDK には、レイト バインドされたエンティティを使用する方法に関する例がいくつかあります。
このエンティティ クラスは厳密に型指定されていないため (crmsvcutil から生成された事前バインドされたエンティティとは異なり)、自分でキャストを実行する必要があります。これに役立つEntityのメソッドがあります。次のコードは、遅延バインドされたエンティティを取得する方法についてのアイデアを与えるかもしれません。
IOrganizationService service = GetOrganizationService();
var entity = service.Retrieve(entityName,
entityId,
new ColumnSet(new[]
{
stringAttributeName,
intAttributeName,
floatAttributeName,
boolAttributeName,
optionSetAttributeName,
entityReferenceAttributeName,
}));
var stringValue = entity.GetAttributeValue<string>(stringAttributeName);
var intValue = entity.GetAttributeValue<int?>(intAttributeName);
var floatValue = entity.GetAttributeValue<double?>(floatAttributeName);
var boolValue = entity.GetAttributeValue<bool?>(boolAttributeName);
var optionSetValue = entity.GetAttributeValue<OptionSetValue>(optionSetAttributeName);
var entityReferenceValue = entity.GetAttributeValue<EntityReference>(entityReferenceAttributeName);