Net Core 3.1, Firebird 2.5 и FB.EF 7.5 - PullRequest
1 голос
/ 05 мая 2020

У меня сейчас есть проект ASP. NET Core 3.1, и я использую Firebird Sql .EntityFrameowrk.Core.Firebird v7.5.0.

При попытке обновить базу данных из простая миграция с первичным ключом и строковым столбцом

public class TB_CUSTOMER
{
    [Key]
    public int ID_CUSTOMER{ get; set; }
    public string NAME{ get; set; }
}

Однако, когда я делаю sh обновление базы данных, я получаю ошибку «Token Unknown». Это связано с тем, как EF создает запрос SQL:

CREATE TABLE "TB_CUSTOMER" (
    "ID_CUSTOMER" INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL,
    "NAME" BLOB SUB_TYPE TEXT,
    CONSTRAINT "PK_TB_CUSTOMER" PRIMARY KEY ("ID_CUSTOMER")
);

Кажется, GENERATED BY - это синтаксис для Firebird 3.0 (который я не могу использовать из-за технических проблем со сторонним программным обеспечением) . Я не смог найти никакой информации о том, могу ли я использовать NET Core 3.1 (и FB.EF 7.5.0) с FB 2.5. Возможно ли это, или это безнадежное дело?

Если возможно, как я могу указать версию FB, которую должен ожидать EF?

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

На данный момент Firebird <3 не поддерживается. Но если вы внимательно выберете функции, вы сможете заставить его работать. Один из вариантов - отключить идентификацию и <a href="https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/master/Provider/src/FirebirdSql.EntityFrameworkCore.Firebird/Extensions/FbPropertyBuilderExtensions.cs#L43" rel="nofollow noreferrer"> использовать последовательность и триггер .

2 голосов
/ 05 мая 2020

GENERATED BY DEFAULT AS IDENTITY действительно был введен в Firebird 3 .

Согласно обсуждению группы Google firebird- net -провайдера в Проблемы с логическими свойствами? , для EF Core 3.1 поддерживается только Firebird 3.

Я не уверен, есть ли опция, которая подавляет создание столбца идентификаторов, но, вероятно, этого не произойдет быть единственной проблемой совместимости.

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