在生成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 ,但最终的解决方案不需要在生成迁移后使用。