根据这个消息来源
应该可以让 TPH 鉴别器列是一个整数:
此外,更改鉴别器列的数据类型也很有趣。在上面的代码中,我们将字符串传递给 HasValue 方法,但该方法已定义为接受一种对象类型:
公共无效 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")。