What I'm trying to achieve is to serialize in some form an object and store it in the db and then recreate it.

This is the structure: I'm using <https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/using-conversion-operators> for conversion 

```
 public class Order : AggregateRoot
 {
    private string _cityList;
    public virtual CityList CityList { get => (CityList)_cityList; }
 }

 public class CityList : ValueObject
 {
     private string _cities { get; }

     public CityList(string cities)
     {
         _cities = cities;
     }

     public static explicit operator CityList(string cityList)
     {
         return new CityList(cityList);
     }

     public static implicit operator string(CityList cityList)
     {
         return (string)cityList;
     }
  }

```

This is the configuration

```
 mapping
        .Map(Reveal.Member<Order>("CityList"))
        .CustomType("string")
        .Column("CityList");

```

This is what I get 

> 
> An unhandled exception occurred while processing the request.
>  InvalidCastException: Unable to cast object of type CityList to type System.String
> 
> 
> NHibernate.Type.AbstractStringType.Set(DbCommand cmd, object value, int index, ISessionImplementor session)PropertyValueException:
>  Error dehydrating property value for CityList
>  Command.Stack.Adapters.Base.UnitOfWork.IUnitOfWork.CommitAsync(CancellationToken
>  cancellationToken)
> 
> 
> 

Why do I get this? and how to solve it ?