从针对Oracle数据库的Entity Framework 6.X迁移中删除架构

时间:2019-02-19 10:43:30

标签: oracle entity-framework entity-framework-6

在生成EF代码迁移时,它包含架构/用户字符串,例如:

CreateTable(
    "MYSCHEMA.QA_CALCQUEUE",
    c => new
        {
            CALCREQID = c.Decimal(nullable: false, precision: 19, scale: 0, identity: true),
            ACTIONCODE = c.String(maxLength: 32),
            ACTIONTEXT = c.String(maxLength: 2048),
            CALCQAMEASID = c.Decimal(nullable: false, precision: 10, scale: 0),
            QAMEASID = c.Decimal(nullable: false, precision: 10, scale: 0),
            TIMESTAMP = c.DateTime()
        })
    .PrimaryKey(t => t.CALCREQID)
    .ForeignKey("MYSCHEMA.QA_MEAS", t => t.QAMEASID)
    .ForeignKey("MYSCHEMA.QA_MEAS", t => t.CALCQAMEASID)

其中 MYSCHEMA 是架构名称。 当我通过 DbContext 中的以下代码省略时:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.HasDefaultSchema(string.Empty);
}

生成的迁移将不包含架构,但是在迁移应用期间将失败。 有没有办法在没有模式名称的情况下进行迁移? 我只能考虑用字符串变量替换 MYSCHEMA ,但最终的解决方案不需要在生成迁移后使用。

0 个答案:

没有答案