我使用EF6.0 + Oracle 10g和代码优先方法。
在我的迁移中有这样的代码片段:
Sql(@"
begin
insert into t_new1 (p1, p2)
select p1, p2 from t_old1;
insert into t_new2 (p1, p2)
select p1, p2 from t_old2;
...other DML operations.....
end;");
当我尝试使用Update-Database
应用迁移时,我收到的错误没有提供有关问题真实性质的任何提示。
看起来像是
Devart.Data.Oracle.OracleException(0x80004005):ORA-06550:第1行第6列:
如果loop mod null pragma raise返回选择更新,则使用
PLS-00103:遇到符号""期待以下之一:开始大小写声明退出goto close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
我怀疑它不允许在Begin-End
函数中使用DbMigration Sql
块。但我无法确定,并希望听到有关这种情况的一些建议。
作为一种解决方法,可以创建存储过程,执行它然后删除。然而,这似乎不够优雅。