---
title: Configure DDS
slug: cms-12/docs/configuring-dynamic-data-store
docTags: 
createdAt: 2026-08-10T15:55:58.000Z
---

You have the following options to configure through the application’s configuration file:

The `DynamicDataStoreOptions` can be defined under `EPiServer:Cms`.

- The `DynamicDataStoreOptions` element has the child elements `AutoResolveTypes`, `AutoRemapStores`, and `DeleteAllOperationTimeout` and the following attributes:
  - `autoResolveType` can be `true` (default) or `false`.
    If set to `true`, then the Dynamic Data Store tries to resolve .NET Types if the `System.Type.GetType` method call fails for types stored in a store. The resolution occurs by removing the version information from the type string and calling `Type.GetType` again. If this fails, the resolution occurs by removing the assembly information from the type string and calling `Type.GetType` again. If the Type still is not resolved, an exception is thrown.
    If set to **false**, type resolving occurs through assembly redirects in the configuration file.
  - `autoRemapStores` can be `true` (default) or `false`.
    If set to `true`, then the Dynamic Data Store automatically remaps all .NET classes decorated with the `EPiServerDataStoreAttribute` attribute and where the `AutomaticallyRemapStore` property is set to true, to their respective stores when the Class and store mappings are no longer aligned.
    If set to **false**, no automatic remapping is done for any class.

:::hint{type="danger"}
**Warning**
In multi-instance environments (such as Azure App Service or load-balanced servers), automatic remapping (`autoRemapStores = true` together with `AutomaticallyRemapStore = true` on a type) can cause transient `Invalid column name` errors during a deployment that adds, removes, or renames properties. See [Multi-instance deployment considerations](docId\:Ee4y8DxT8OmVWvy6X3G-K) for the cause and recommended mitigations.
:::

:::Paragraph{listStyleType="disc" indent="2"}
`DeleteAllOperationTimeout`  – The extended command timeout to use when deleting all items in a store.
:::

```csharp
{
  "EPiServer" : {
    "Cms" : {
      "DynamicDataStore" : {
        "AutoResolveTypes"          : "true/false",
        "AutoRemapStores"           : "true/false",
        "DeleteAllOperationTimeout" : "time span"
      }
    }
  }
}
```

## Change configuration programmatically

You can modify some of the Dynamic Data Store configuration programmatically through the `EPiServer.Data.Dynamic.DynamicDataStoreOptions` class. You should do this during the configuration phase of the site initialization, by configuring `IServiceCollection` in the `ConfigureServices` method in the `Startup` class.

```csharp
public class Startup {
  public void ConfigureServices(IServiceCollection services) {
    ...

    services.Configure<DynamicDataStoreOptions>(options => {
      options.AutoRemapStores = true or false;
      options.AutoResolveTypes = true or false;
      options.DeleteAllOperationTimeout = TimeSpan.FromSeconds(xxx);
    });

    ...
  }
}
```

## Recommendations

- Create/obtain instances of the `DynamicDataStore` on the stack, use them, and then discard them. Note that the Dynamic Data Store **is not** thread safe and if an instance is used and shared between multiple threads, it should be protected with thread-locking techniques.
- Implement `EPiServer.Data.IDynamicData` or a `Guid` property called Id on your objects to be saved when you want to control the external identity of your objects.
- Use the same instance of a Dynamic Data Store to load and then update a POCO object (object without identity).
