Litium.Accelerator' behöver implementera Litium.ComponentModel.IReadOnly

I’m getting this error when trying to, create or edit a filterfield. Even with no options added i get this error. It “might” have happend when upgrading to 6.2.3-patch-1812141742 from 6.1, but im not sure on that.

IWebLog exception ‘Validation error for FieldDefinition(SystemId: a6c704ee-3f1f-4de9-8eed-9905ce559c57, Id: AcceleratorFilterFields), Option: ‘Litium.Accelerator.FieldFramework.FilterFieldTypeMetadata+Option, Litium.Accelerator’ behöver implementera Litium.ComponentModel.IReadOnly.’.’: 93b9fed2-1c92-4354-bb8d-5b3b8f6ae752(Option:Litium.Accelerator.FieldFramework.FilterFieldTypeMetadata+Option, Litium.Accelerator’ behöver implementera Litium.ComponentModel.IReadOnly.:wink:

Litium.Validations.ValidationException: Validation error for FieldDefinition(SystemId: a6c704ee-3f1f-4de9-8eed-9905ce559c57, Id: AcceleratorFilterFields), Option: ‘Litium.Accelerator.FieldFramework.FilterFieldTypeMetadata+Option, Litium.Accelerator’ behöver implementera Litium.ComponentModel.IReadOnly.’.
at Litium.Validations.ValidationServiceExtensions.ThrowExceptionIfError[T](ValidationService service, T entity, ValidationMode validationMode)
at Litium.Application.Data.Batching.BatchDataImpl.Update[T](T entity)
at Litium.Application.Products.FieldDefinitionServiceImpl.Update(FieldDefinition fieldDefinition)
at Litium.Web.Administration.WebApi.Common.Controllers.FieldsControllerBase2.Put(Guid systemId, FieldModel value) at Litium.Web.Administration.WebApi.Products.Controllers.FieldsController.Put(Guid systemId, FieldModel value) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_1.<GetExecutor>b__3(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 arguments, CancellationToken cancellationToken)
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Tracing.ITraceWriterExtensions.d__17`1.MoveNext()
— End of stack trace from previous location where exception was thrown —

Litium version: 6.2

As the error message said, the Option class needs to implement IReadOnly, after you upgraded to the new version, in order to have the cache object immutable. The easiest way is to inherit Litium.ComponentModel.ObjectBase.