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; }
}
The only solution is using something like this:
public class Car
{
public virtual int CarId { get; set; }
public virtual string TypeName { get; set; }
// This must be accessible to the mapping
public double? PriceData { get; set; }
public ConvertableNullable<double> Price
{
get { // Return data from PriceData }
set { // Set data to PriceData }
}
}
Your mapping will be:
modelBuilder.Entity<Car>().HasKey(x=>x.CarId);
modelBuilder.Entity<Car>().Property(x => x.TypeName);
modelBuilder.Entity<Car>().Property(x => x.PriceData).HasColumnName("Price");
modelBuilder.Entity<Car>().Ignore(x => x.Price);
The problem is that EF globally doesn't have support for custom scalar types.