Согласно этому источнику
должно быть возможно, чтобы столбец дискриминатора TPH был целым числом:
Кроме того, интересно изменить тип данных столбца дискриминатора. В приведенном выше коде мы передали строки методу HasValue, но этот метод был определен для приема типа объекта:
public void HasValue (значение объекта);
Поэтому, если, например, мы передаем ему значение типа int, Code First не только использует нужные значения (т.е. 1 и 2) в столбце дискриминатора, но также изменяет тип столбца на (INT, NOT NULL) :
modelBuilder.Entity() .Map(m => m.Requires("BillingDetailType").HasValue(1)) .Map(m => m.Requires("BillingDetailType").HasValue(2));
Однако, когда я делаю это в своем коде, я вижу значения дискриминатора, такие как «1» и «2», но тип столбца по-прежнему
nvarchar(128), не нуль
Действительно ли возможно указать столбец целочисленного дискриминатора? Если да, то как?
Я уверен, что указываю сопоставление как .HasValue(1), а не как .HasValue("1").