xConnectコレクションモデル
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
コレクションモデルは、経験データの構造を構成するCLRタイプ、ファセット、イベントを定義します。Sitecoreは、PersonalInformationなどのファセットやGoal 、Outcomeなどのイベントタイプを定義するデフォルトのコレクションモデルを搭載しています。独自のファセットやイベントで、任意の数の追加モデルを定義できます。
すべてのモデルは完全にコードで定義されています。以下のモデルは、1つの接触面と1つのイベントを定義しています:
using System; using Sitecore.XConnect.Operations; using Sitecore.XConnect.Schema;
namespace Sitecore.XConnect.Sample.Model { public static class CollectionModel { public static XdbModel Model { get; } = BuildModel();
static XdbModel BuildModel() { var builder = new XdbModelBuilder("Sitecore.XConnect.Sample.Model", new XdbModelVersion(1, 0));
//Contact facets builder.DefineFacet<Contact, CustomFacet>(FacetKeys.CustomFacetKey);
// Events
builder.DefineEventType
return builder.BuildModel(); } }
public static class FacetKeys { public const string CustomFacetKey = nameof(CollectionModel.Avatar); } }
コンソールアプリケーションの文脈では、xConnect Client APIはカスタムモデルで初期化できます:
var cfg = new XConnectClientConfiguration( new XdbRuntimeModel(CollectionModel.Model), collectionClient, searchClient, configurationClient);
または、カスタムモデルをSitecoreの設定に追加することも可能です。アプリケーションが起動すると、構成に記載されているすべてのモデルからランタイムモデルが組み立てられ、xConnectクライアントをリクエストした際に利用可能です。
using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { // Core collection model and custom model both available from configuration }
xConnectサービスは、クライアントアプリケーションが使用したいモデルのJSON表現を備えなければなりません。

モデルをJSONにシリアライズするためのツールは存在します。モデルのJSONとC#のバージョンが一致しなければ、xConnect Client APIが初期化に失敗します。xConnectはモデルのJSON表現だけで十分で、DLLをデプロイする必要はありません。