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