"此处不允许使用专栏"在EF6中使用TPH和Devart Oracle

时间:2014-06-26 10:44:29

标签: c# oracle entity-framework-6 devart dotconnect

使用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。

1 个答案:

答案 0 :(得分:0)