根据这个消息来源
应该可以让TPH鉴别器列为整数:
另外,更改鉴别器列的数据类型很有意思。 在上面的代码中,我们将字符串传递给HasValue方法但是这样 方法已被定义为接受一种对象:
public void HasValue(object value);
因此,例如,如果我们将int类型的值传递给它,那么Code 首先,不仅要使用我们想要的值(即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),not null
实际上是否可以指定整数鉴别器列?如果是这样,怎么样?
我确定我将我的映射指定为 .HasValue(1)而不是 .HasValue(“1”)。
答案 0 :(得分:2)
modelBuilder.Entity<X>()
.Map<X>(m => { m.Requires("BillingDetailType").HasValue(0).HasColumnType("tinyint"); })
.Map<Y>(m => { m.Requires("BillingDetailType").HasValue(1); m.MapInheritedProperties(); })
.Map<Z>(m => { m.Requires("BillingDetailType").HasValue(2); m.MapInheritedProperties(); })
;