9.3
  1. Reference Data Client API

Reference data batching

The Reference Data Client API supports batching, and it is recommended that you submit large amounts of data to the Reference Data Service as smaller batches. A batch is submitted when awaitclient.SaveAsync() is called. In the following example, two definitions are submitted in the same batch:

using Sitecore.DependencyInjection;
using Sitecore.Xdb.ReferenceData.Core;
using System.Globalization;
using Sitecore.Xdb.ReferenceData.Core.Collections;

namespace Documentation
{
    public class RefDataSaveDefinition
    {
        public async void Example()
        {
            var client = ServiceLocator.ServiceProvider.GetService(typeof(IReferenceDataClient)) as IReferenceDataClient;

            var definitionType = await client.EnsureDefinitionTypeAsync("country");

            var definitionKey = new DefinitionKey("se", definitionType, 1);
            var definition = new Definition<string, string>(definitionKey)
            {
                IsActive = true
            };

            definition.CultureData[new CultureInfo("en")] = "Sweden";
            definition.CultureData[new CultureInfo("se")] = "Sverige";

            var definitionKey2 = new DefinitionKey("de", definitionType, 1);
            var definition2 = new Definition<string, string>(definitionKey)
            {
                IsActive = true
            };

            definition.CultureData[new CultureInfo("en")] = "Germany";
            definition.CultureData[new CultureInfo("se")] = "Tyskland";

            var definitions = new DefinitionCollection<string, string>
            {
                definition,
                definition2
            };

            await client.SaveAsync(definitions);
        }
    }
}
Note

If you are building an application that relies on batching, it is recommended that you provide a way for an administrator to configure and tune the default batch size.

If you have suggestions for improving this article, let us know!