网络核心 3.1、Firebird 2.5 和 FB.EF 7.5

Net Core 3.1, Firebird 2.5 and FB.EF 7.5

我目前有一个 ASP.NET Core 3.1 项目,我正在使用 FirebirdSql.EntityFrameowrk.Core.Firebird v7.5.0。

尝试使用主键和字符串列从简单迁移更新数据库时

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

但是,当我推送数据库更新时,出现 "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 带来的语法(由于第三方软件的技术问题我无法使用)。我找不到任何关于我是否可以在 FB 2.5 中使用 NET Core 3.1(和 FB.EF 7.5.0)的信息。这是可能的,还是失败的原因?

如果可能,我如何指定 EF 预期的 FB 版本?

GENERATED BY DEFAULT AS IDENTITY确实是introduced in Firebird 3

根据 firebird-net-provider Google Group in Problems with boolean properties? 上的讨论,EF Core 3.1 仅支持 Firebird 3。

我不确定是否有一个选项可以禁止生成标识列,但这可能不是唯一的兼容性问题。

目前不支持 Firebird <3。但如果你仔细选择功能,你可以让它发挥作用。一种选择是禁用身份和 use sequence and trigger.