1. Cloud development

エンティティクライアント

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このSDKは、エンティティに対してCRUD操作を行うためのEntities clientを提供します。

!注以下のコード例におけるclient変数はIMClientインスタンスを指します。Web SDKを使用する場合、変数名は自由に選択できますが、ドキュメントではインスタンス化時に「 client 」とも呼ばれています。

エンティティを入手

以下の方法でidによってエンティティが得られます:

IEntity entity = await MClient.Entities.GetAsync(entityId);

エンティティが存在しない場合や、ユーザーが十分な権限を持っていない場合、メソッドはnullを返します。

!注id、識別子、定義でエンティティを読み込む方法は多数あります。さまざまなオプションの詳細については、APIの参考文献のIEntitiesClientを参照してください。

!注エンティティを読み込む際にロード設定を渡すことが可能です。ロード設定の詳細については、ロード構成セクションをご参照ください。

エンティティを作成する

エンティティはEntityFactoryを用いてのみインスタンス化できます。

以下のスニペットでは、アセットエンティティがローカルで作成されます。

IEntity asset = await MClient.EntityFactory.CreateAsync("M.Asset"); asset.SetPropertyValue("Title", "AssetName");

以下のスニペットでは、ローカルで作成されたアセットエンティティがサーバーに送られ、検証と永続化されます。

long id = await MClient.Entities.SaveAsync(asset);

返されたIDは新たに作成されたエンティティのIDです。このエンティティの最新バージョンを取得するには、サーバーから再度IDを取得してください。

コピーエンティティ

エンティティはエンティティクライアントのCopyAsyncメソッドを使ってコピーできます。

await MClient.Entities.CopyAsync(entityId, entityCopyOptions);

エンティティは コピー プロファイルや、上書き、保持、無視、削除などのPropertiesやRelationsを指定することでコピーできます。

以下のスニペットでは、既存のM.Assetエンティティに基づいて新しいM.Assetエンティティが作成されます。新しいエンティティでは、元のエンティティのTitleが新しい値で上書きされ、Descriptionは無視され、FileNameAssetTypeToAsset関係は保持され、LocalizationToAssetは削除されます。

var options = new EntityCopyOptionsBuilder() .WithProperty("Title", PropertyCopyMethod.Overwrite, "new title") .WithProperty("Description", PropertyCopyMethod.Ignore) .WithProperty("FileName", PropertyCopyMethod.Keep) .WithRelation("AssetTypeToAsset", RelationCopyMethod.Keep) .WithRelation("LocalizationToAsset", RelationCopyMethod.Remove) .Build();

var copyId = await MClient.Entities.CopyAsync(originalEntityId, options);

戻されたIDは新たに作られたエンティティのIDです。

以下のスニペットでは、既存のM.Assetエンティティが別の既存のM.Assetエンティティに基づいて更新されます。新しいエンティティでは、元のエンティティのTitleが新しい値で上書きされ、Descriptionは無視され、FileNameAssetTypeToAsset関係は保持され、LocalizationToAssetは削除され、AssetMediaToAsset関係は無視されます。

var options = new EntityCopyOptionsBuilder() .WithDestinationEntityId(destinationEntityId) .WithProperty("Title", PropertyCopyMethod.Overwrite, "new title") .WithProperty("Description", PropertyCopyMethod.Ignore) .WithProperty("FileName", PropertyCopyMethod.Keep) .WithRelation("AssetTypeToAsset", RelationCopyMethod.Keep) .WithRelation("LocalizationToAsset", RelationCopyMethod.Remove) .WithRelation("AssetMediaToAsset", RelationCopyMethod.Ignore) .Build();

var copyId = await MClient.Entities.CopyAsync(originalEntityId, options);

返送されるIDは、宛先エンティティと同じIDです。

以下のスニペットでは、既存のM.Contentエンティティを基に新しいM.Contentエンティティが作成されます。コピー、無視、保持されるものなどのPropertiesやRelationsは、M.ContentエンティティのDraftsコピープロファイルで定義されます。

var options = new EntityCopyOptionsBuilder() .WithCopyProfile(30102) // ID of the OOB Drafts Copy Profile for M.Content entities .Build();

var copyId = await MClient.Entities.CopyAsync(originalEntityId, options);

戻されたIDは新たに作られたエンティティのIDです。

更新エンティティ

エンティティ作成と同様に、修正を行った後にエンティティクライアントでSaveAsyncメソッドを使いましょう。

long id = await MClient.Entities.SaveAsync(asset);

返されたIDはエンティティと同じIDです。このエンティティの最新バージョンを取得するには、サーバーから再度IDを取得してください。

エンティティを削除

エンティティの削除は、エンティティクライアントのDeleteAsyncメソッドを使うことで実現できます。削除のためにエンティティIDを指定する必要があります。

await MClient.Entities.DeleteAsync(entityId);

この記事を改善するための提案がある場合は、 お知らせください!