0

Microsoft.CrmSdk アセンブリを使用して Dynamics 365 for Customer Engagement (バージョン 9) でエンティティを生成すると、CrmServiceClient のメソッド GetEntityMetadata がエンティティから最新の情報を取得しないことがわかりました。

表示するコードは次のとおりです。

using (var svc = new CrmServiceClient(strConn))
{
    EntityMetadata em = svc.GetEntityMetadata(PREFIX + TABLE_NAME_D, EntityFilters.Attributes);
    if (em == null)
    {
        Console.WriteLine($"Create entity [{PREFIX + TABLE_NAME_D}]");
        CreateEntityRequest createRequest = new CreateEntityRequest
        {
            Entity = new EntityMetadata
            {
                SchemaName = PREFIX + TABLE_NAME_D,
                LogicalName = PREFIX + TABLE_NAME_D,
                DisplayName = new Label(TABLE_LABEL, 1036),
                DisplayCollectionName = new Label(TABLE_LABEL_P, 1036),
                OwnershipType = OwnershipTypes.UserOwned,
            },
            PrimaryAttribute = new StringAttributeMetadata
            {
                SchemaName = PREFIX + "name",
                MaxLength = 30,
                FormatName = StringFormatName.Text,
                DisplayName = new Label("Residence", 1036),
            }
        };
        CreateEntityResponse resp = (CreateEntityResponse)svc.Execute(createRequest);
        em = svc.GetEntityMetadata(PREFIX + TABLE_NAME_D, EntityFilters.All);
        // At this point, em is null!!!
    }
}

createResponse を受け取った後、エンティティは Dynamics で適切に作成されていますが、直後に呼び出された GetEntityMetadata はまだ null のままです。数秒待ってから別の電話をかけると、応答は正しくなります。しかし、それは恐ろしいです!応答の更新を「強制」する方法はありますか? ありがとう。

4

1 に答える 1