EF Core向PostgreSQL插入1:N关联数据时触发主键重复约束异常
EF Core 插入一对多关联记录时触发PostgreSQL主键重复约束错误
我使用EF Core向PostgreSQL数据库插入带有一对多关联的记录:单独向Users表插入单条记录完全正常,但当引入User与User_Governments的一对多关联后,就会抛出错误:duplicate key value violates unique constraint "pk_user_governments"。
已尝试的操作
- 执行以下PostgreSQL查询语句:
SELECT MAX(user_governments_id) FROM user_governments;
SELECT nextval('users_gov_user_id_seq');
每次执行这两个语句,返回的值都会递增,但问题仍未解决。 - 参考相关内容执行重置序列的命令:
执行后报错:SELECT SETVAL((SELECT PG_GET_SERIAL_SEQUENCE('user_governments', 'user_government_id')), (SELECT (MAX("user_government_id") + 1) FROM "user_governments"), FALSE);ERROR: relation "user_governments" does not exist
插入代码
User user = new(); user.Organisation = organisation; user.Name = userName; user.Email = email; user.IsSafetyDashboardUser = isSafetyFlag; if (isSafetyFlag) { List<UserGovernment> userGovernments = new List<UserGovernment>(); foreach (var govId in lgas) { userGovernments.Add(new UserGovernment() { LocalGovId = govId, StateId = 7 }); } user.UserGovernments = userGovernments; } _context.Users.Add(user); int rows_affected = _context.SaveChanges();
User_Governments表结构
CREATE TABLE IF NOT EXISTS user_governments ( user_government_id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ), user_id integer NOT NULL, state_id integer NOT NULL, local_gov_id integer NOT NULL, CONSTRAINT pk_user_governments PRIMARY KEY (user_government_id), CONSTRAINT fk_user_governments_local_govs_local_gov_id FOREIGN KEY (local_gov_id) REFERENCES local_govs (local_gov_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE, CONSTRAINT fk_user_governments_states_state_id FOREIGN KEY (state_id) REFERENCES states (state_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE, CONSTRAINT fk_user_governments_users_user_id FOREIGN KEY (user_id) REFERENCES users (user_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE ) WITH ( OIDS = FALSE ) TABLESPACE pg_default;
内容的提问来源于stack exchange,提问作者Samra
相关产品推荐
相关产品推荐

