---
title: "エンティティクライアント"
slug: "entities-client-1523389"
abstract: "エンティティに対してCRUD操作を行うために使用されたEntitiesクライアントの概要と例。"
---
# エンティティクライアント

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

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

## エンティティを入手

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

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

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

> !注id、識別子、定義でエンティティを読み込む方法は多数あります。さまざまなオプションの詳細については、[APIの参考文献](https://doc.sitecore.com/ch/ja/developers/cloud-dev/overview.html "Overview")のIEntitiesClientを参照してください。

> !注エンティティを読み込む際にロード設定を渡すことが可能です。ロード設定の詳細については、[ロード構成セクション](https://doc.sitecore.com/ch/ja/developers/cloud-dev/load-configurations-1523416.html "Load configurations")をご参照ください。

## エンティティを作成する

エンティティは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);

エンティティは [コピー](https://doc.sitecore.com/ch/en/users/content-hub/copy-profiles.html) プロファイルや、上書き、保持、無視、削除などの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);