Given this code:
public class Car { public virtual int CarId { get; set; } public virtual string TypeName { get; set; } public ConvertableNullab
"Make sure that it is a valid primitive property" - clearly the problem lies with your Nullable workaround - why not just make it a nullable double?
public class Car { public virtual int CarId { get; set; } public virtual string TypeName { get; set; } public double? Price { get; set; } }