Я пытаюсь использовать Dapper, Npgsql для подключения к базе данных postgres из приложения .net. После вставки я хочу знать идентификатор вставленной строки. Я прочитал и попробовал варианты , обсуждаемые здесь .
Я пытался использовать returning id
так:
id = connection.Execute("insert into document_tag (tag) values (@tag) returning id;",
new { tag },
transaction);
но я получаю только '1' в идентификаторе.
Я также пытался использовать currval
так:
id = connection.Execute("insert into document_tag (tag) values (@tag); select currval(pg_get_serial_sequence('document_tag','id'));",
new { tag },
transaction);
Даже в этом случае я получаю только '1' в id
.
В обоих случаях вставка прошла успешно, и столбец id в базе данных имел действительный серийный номер, отличный от «1».
Мои ожидания неверны или есть альтернатива?