您是否曾尝试使用Firebird数据库创建ASP.NET MVC项目...我尝试了,并且很难..
我的问题:
FirebirdSql.Data.Common.IscException:违反PRIMARY或UNIQUE KEY约束" PK_USERS"在表格" USERS"
这意味着创建的记录的id不会增加。 我有必须生成新id的存储过程。
我的问题是:
如何从ASP.NET插入Firebird数据表中的记录?
答案 0 :(得分:2)
在Firebird中,如果您想要像行为一样自动增加,则需要将触发器与序列(生成器)结合使用。否则,您需要确保自己分配一个唯一的ID。
创建序列:
CREATE SEQUENCE mytable_id_sq;
创建用于分配唯一i的触发器(在名为mytable的表上)
set term !! ;
CREATE TRIGGER T1_BI FOR mytable
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (NEW.ID is NULL) then NEW.ID = NEXT VALUE FOR mytable_id_sq;
END!!
set term ; !!
如果INSERT
语句中未分配ID,则此触发器仅分配生成的值。
另见: http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-ddl-sequence.html和http://www.firebirdfaq.org/faq29/(此链接讲述了生成器,Firebird中旧序列的名称)。
答案 1 :(得分:1)
您的EDMX可能无法正常生成。您必须手动设置StoreGeneratedPattern
或使用http://blog.cincura.net/230841-generated-primary-key-in-entity-framework-model-from-firebird/。