1

EF を使用して DB スキーマを作成すると、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");
    }
}

EF 6.1.1、dotConnect Oracle 8.4.171 をローカルの 11g Express インストールで使用しています。

4

1 に答える 1