4

VS2010 (.NET 4.0) と共に Firebird 2.1 データベースを使用しており、エンティティ フレームワークで適切に動作するようにしようとしています。

問題は、データベース テーブルからエンティティを生成するときに、フレームワークがすべての列を主キーの一部として検出することです。このテーブルは非常に単純で、整数列が 2 つあり、そのうちの 1 つが主キーとして設定されています。

主キー列のコメントとして「#PK_GEN#」を設定しています。

EF-Editor では、ストア オブジェクトの主キー プロパティを変更できません。null 許容列を処理する必要があるため、これが問題です。モデル ファイルの XML コードを編集できますが、モデルの更新時に変更が永続的ではないため、問題が発生します。

テーブルではなくビューに関する同様の問題について読んだだけなので、明らかに何か間違ったことをしていますが、それを理解することはできません。

編集:ちなみに、VS 2012 で動作をテストしたところ、変更はありません。

これが CREATE スクリプトです。私は Firebird を初めて使用するので、ここでも何か問題があるかもしれませんが、そうは思いません。

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 ; ^
4

1 に答える 1

2

問題は、Firebird 2.1 にバグが含まれており、その結果、この問題が発生することです。Firebird 2.5 を使用してモデルを生成すれば問題ありません。

ここここここを参照してください。

于 2013-03-03T07:17:03.227 に答える