using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Newtonsoft.Json; namespace ErsatzTV.Infrastructure.Data.Configurations; public class EnumCollectionJsonValueConverter : ValueConverter, string> where T : Enum { public EnumCollectionJsonValueConverter() : base( v => JsonConvert.SerializeObject(v.Select(e => e.ToString()).ToList()), v => JsonConvert.DeserializeObject>(v) .Select(e => (T)Enum.Parse(typeof(T), e)).ToList()) { } }