我正在与VS2010 (.NET 4.0)一起使用FireBird2.1数据库,并试图让它与实体框架一起正常工作。
问题是,当我从数据库表生成一个实体时,框架会检测到所有列都是主键的一部分。该表非常简单,有两个整数列,其中一个被设置为主键。
我甚至将"#PK_GEN#“设置为主键列的注释。
在Editor中,我不能修改存储对象的主键属性,因为我必须处理可空列,这是一个问题。我可以编辑模型文件的XML代码,但是在更新模型时,更改是不持久的,所以这是一个显示停止。
由于我只读到有关视图的类似问题,而不是表格,我显然做错了什么,但我无法弄清楚。
编辑:顺便说一下,我刚刚测试了VS 2012的行为,并且没有改变。
这是创建脚本。既然我刚接触过火鸟,这里可能也会有什么问题,但我真的不这么认为。
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 ; ^发布于 2013-03-03 07:17:03
问题是,Firebird 2.1包含一个bug,这导致了这一点。使用Firebird 2.5生成模型,您就可以了。
参考文献这里,这里,这里。
https://stackoverflow.com/questions/15141213
复制相似问题