实体框架将所有字段放在火鸟表的主键中



我使用Firebird 2.1数据库与VS2010(。. NET 4.0),我试图让它与实体框架正常工作。

问题是,当我从数据库表生成实体时,框架检测到所有列都是主键的一部分。这个表非常简单,只有两个整数列,其中一个被设置为主键。

我甚至设置了"# pk_gen# "作为主键列的注释。

在EF-Editor中,我不能修改存储对象的主键属性,因为我将不得不处理可空列,这是一个问题。我可以编辑模型文件的XML代码,但是在更新模型时所做的更改是不持久的,因此这是一个显示障碍。

因为我只读到关于视图而不是表的类似问题,我显然做错了什么,但我不能弄清楚。

edit:顺便说一下,我刚刚测试了VS 2012的行为,它保持不变。

下面是CREATE脚本。因为我是新来的火鸟,这里可能也有我的问题,但我真的不这么认为。
CREATE GENERATOR GEN_TESTTABLE_ID;
CREATE TABLE TESTTABLE (
    TESTTABLE_ID  INTEGER NOT NULL,
    VALUE         INTEGER
);
ALTER TABLE TESTTABLE ADD CONSTRAINT PK_TESTTABLE PRIMARY KEY (TESTTABLE_ID);
COMMENT ON COLUMN TESTTABLE.TESTTABLE_ID IS '#PK_GEN#';
SET TERM ^ ;
CREATE OR ALTER TRIGGER TESTTABLE_BI_GEN_ID FOR TESTTABLE
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if ((new.testtable_id is null) or (new.testtable_id = 0) ) then
    begin
      new.testtable_id = gen_id(gen_testtable_id, 1);
    end
end
^
SET TERM ; ^

问题是,Firebird 2.1包含一个bug,导致了这个结果。使用Firebird 2.5生成模型,您将会很好。

这里,这里,这里。

相关内容

  • 没有找到相关文章

最新更新