Скорее всего, вы забыли создать первичный ключ для этой таблицы.
У меня была такая же проблема, и решение в моем случае было очень простым. Проблема была в том, что у меня был столбец с именем "id", но я забыл сделать его Первичным ключом. В тот момент, когда я установил его в качестве первичного ключа, все было в порядке.
Это очень странно, потому что EF обычно не будет импортировать таблицу без первичного ключа, но когда у вас есть столбец с именем "id", предполагается, что это первичный ключ.
Структура моего стола была:
*DROP TABLE IF EXISTS "public"."fact_season_tickets";
CREATE TABLE "public"."fact_season_tickets" (
"id" int8 DEFAULT nextval('fact_season_tickets_id_seq'::regclass) NOT NULL,
"season_ticket_id" int8 NOT NULL,
"date_key" int4 NOT NULL,
"station_id" int4 NOT NULL,
"amount" numeric(18,2) DEFAULT 0 NOT NULL,
"status" int4 NOT NULL
)
WITH (OIDS=FALSE)*
Сгенерированный оператором NpgSql INSERT был:
*INSERT INTO (SELECT "fact_season_tickets"."id",
"fact_season_tickets"."season_ticket_id",+
"fact_season_tickets"."date_key",
"fact_season_tickets"."station_id",
"fact_season_tickets"."amount",
"fact_season_tickets"."status"
FROM "public"."fact_season_tickets" AS "fact_season_tickets")
("season_ticket_id","date_key","station_id","amount","status")
VALUES (510::int8,20150630,2,18.00::numeric,1)
RETURNING "id"*
Решением было просто создание первичного ключа:
*ALTER TABLE "public"."fact_season_tickets" ADD PRIMARY KEY ("id");*