エンティティクライアント
このページの翻訳は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は無視され、FileNameとAssetTypeToAsset関係は保持され、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は無視され、FileNameとAssetTypeToAsset関係は保持され、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);