EF Core с Oracle 11g. Проблема с IDENTITY PK - PullRequest
0 голосов
/ 24 октября 2019

Проект выполняется с использованием .Net Core 2.2, EF Core и SQL Server. Теперь мне нужно использовать этот же проект с Oracle 11g. Я создаю новый проект миграции с Oracle.ManagedDataAccess.Core. Сгенерированный файл миграции:

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);
                });

И сгенерированный скрипт:

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. PK должны быть сгенерированы с помощью триггера и последовательности.

Как настроить EF Core для генерации команд для Oracle версии 11g?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...