首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF核心与甲骨文11g身份问题PK

EF核心与甲骨文11g身份问题PK
EN

Stack Overflow用户
提问于 2019-10-24 12:40:48
回答 1查看 1.7K关注 0票数 2

该项目使用.Net Core2.2、EF和Server运行。现在,我需要在Oracle 11g中使用同样的projetc。我用Oracle.ManagedDataAccess.Core创建了一个新的迁移项目。生成的迁移文件如下:

代码语言:javascript
复制
migrationBuilder.CreateTable(
                name: "AREAATUACAO",
                schema: "SISDETEC",
                columns: table => new
                {
                    ID = table.Column<long>(nullable: false)
                        .Annotation("Oracle:ValueGenerationStrategy", OracleValueGenerationStrategy.IdentityColumn),
                    DATACADASTRO = table.Column<DateTime>(nullable: false),
                    DATAATUALIZACAO = table.Column<DateTime>(nullable: false),
                    NOME = table.Column<string>(nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_AREAATUACAO", x => x.ID);
                });

生成的脚本是:

代码语言:javascript
复制
BEGIN 
EXECUTE IMMEDIATE 'CREATE TABLE 
"SISDETEC"."AREAATUACAO" (
    "ID" NUMBER(19) GENERATED BY DEFAULT ON NULL AS IDENTITY NOT NULL,
    "DATACADASTRO" TIMESTAMP(7) NOT NULL,
    "DATAATUALIZACAO" TIMESTAMP(7) NOT NULL,
    "NOME" NVARCHAR2(2000),
    CONSTRAINT "PK_AREAATUACAO" PRIMARY KEY ("ID")
)';
END;

但是,在Oracle 11g中不存在IDENTITY命令。PKs必须使用触发器和序列生成。

如何配置de以生成Oracle版本11g的命令?

EN

回答 1

Stack Overflow用户

发布于 2019-11-19 02:41:17

来自https://docs.oracle.com/en/database/oracle/oracle-data-access-components/19.3/odpnt/EFCoreAPI.html#GUID-770CD8EA-F963-48A5-A679-CAF471A4DB1A

使用OracleDatabase11.2版本的

客户应该设置UseOracleSQLCompatibility("11")

代码语言:javascript
复制
optionsBuilder.UseOracle("User Id=hr;Password=<password>;Data Source = inst1", b =>
  b.UseOracleSQLCompatibility("11"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58541631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档