Столбец первого целочисленного дискриминатора EF Code

Согласно этому источнику

http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph.aspx

должно быть возможно, чтобы столбец дискриминатора 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").


person Eric J.    schedule 19.09.2012    source источник


Ответы (1)


person    schedule
comment
Обычно хорошей идеей является добавление пояснений и/или комментариев к вашему коду. - person adamdunson; 14.03.2013