Я столкнулся с чем-то похожим, но с помощью оператора return.Уловка, которую я нашел, состояла в том, чтобы использовать объект DynamicParameters.В используемой мной системе операторы вставки должны вызывать NextVal для последовательности, а не для триггера.
var param = new DynamicParameters();
param.Add(name: "Cli", value: model.Cli, direction: ParameterDirection.Input);
param.Add(name: "PlayerAnswer", value: model.PlayerAnswer, direction: ParameterDirection.Input);
param.Add(name: "InsertDate", value: model.InsertDate, direction: ParameterDirection.Input);
param.Add(name: "Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
using (IDbConnection ctx = DbConnectionProvider.Instance.Connection)
{
ctx.Execute("INSERT INTO PLAYER_LOG (CLI, ANSWER, INSERT_DATE) VALUES (:Cli, :PlayerAnswer, :InsertDate) returning Id into :Id", paramList);
}
var Id = param.get<int>("Id");