使用 EF 创建我的数据库模式时,Devart dotConnect 为我的 TPH 类生成以下 SQL:
CREATE TABLE "Types" (
ID NUMBER(10) NOT NULL,
"Name" NVARCHAR2(50) NULL,
"Discriminator" NVARCHAR2(128) DEFAULT (Undefined) NULL,
CONSTRAINT "PK_Types" PRIMARY KEY (ID)
)
我总是收到“ORA-00984:此处不允许列”错误。似乎很明显,它与鉴别器列声明中的“未定义”有关。这是 dotConnect 中的错误还是我对映射做错了什么?看起来很简单的案例。大约有十几个类扩展了 AbstractType,但没有一个类添加新列。
我的 POCO 课程:
public abstract partial class AbstractType
{
public int Id { get; set; }
public string Name { get; set; }
}
映射:
public class AbstractTypeMap : EntityTypeConfiguration<AbstractType>
{
public AbstractTypeMap()
{
HasKey(t => t.Id);
ToTable("Types");
this.Property(t => t.Name).HasMaxLength(50);
this.Property(t => t.Id).HasColumnName("ID");
this.Property(t => t.Name).HasColumnName("Name");
}
}
我在本地 11g 快速安装上使用 EF 6.1.1、dotConnect Oracle 8.4.171。