Decimal data type with precision and scale

I have a field 'Price' on my record that is decimal, and I want to store it with a data type of decimal(19,2) but it seems that if I supply the precision it completely ignores everything, and creates the column as numeric(19,0). The following code is from
my Migrations.cs:

It doesn't make a difference whether I use CreateTable or AlterTable, the result is the same: if I use .WithPrecision, no matter what value I provide it ignores everything and uses (19,0). If I don't call .WithPrecision then the type is (19,5) so I know
the database can do it. If I leave off .WithPrecision and just call .WithScale it has no effect. Also calling .WithLength has no effect.

If I use the non-generic .Column("Price", DbType.Decimal, c => c.NotNull().WithPrecision(19).WithScale(2)) the result is the same too -- completely ignores the precision and scale, sets it to (19,0).

I know I could use the default for this instance but I have another field elsewhere that I need to have a scale of 9, so that won't suffice.