Ho bisogno di mappare un enumerazione nullable nella mia classe ma sto ottenendo eccezioni.Fluent NHibernate mapping nullable enum
NHibernate.PropertyAccessException: Cast non valido (controllare la corrispondenza per mancata corrispondenza del tipo di proprietà); setter di App.Model.Stock ---> System.InvalidCastException: Il cast specificato non è valido.
Ho ridotto il problema a una proprietà specifica, che descrivo di seguito.
Rispondeva in precedenza a here, ma la soluzione rimanda a una pagina che non esiste più.
Ecco il mio codice, che ho ridotto a contenere solo le parti di cui mi occupo.
public enum eColor
{
Red,
Blue
}
public class Stock
{
public virtual eColor? Color { get; protected set; }
}
Ecco il mio mappatura (ridotta):
public class StockMap : ClassMap<Stock>
{
Map(x => x.Color).CustomType<int>();
}
Ho provato tutti i seguenti, con gli stessi risultati:
Map(x => x.Color).CustomType<int>();
Map(x => x.Color).CustomType<int?>();
Map(x => x.Color).CustomType<int>().Nullable();
Map(x => x.Color).CustomType<int?>().Nullable();
Questo sembrava essere un bug una lunga tempo fa e c'era una soluzione. Sto utilizzando Fluent 1.3.0.0 e NHibernate 3.3.1.4000.
Aveva lo stesso problema, questo ha funzionato, grazie! – iamserious