Триггерная идентификация в формате fluent-nHinernate nhIdOutParam всегда возвращает ноль (Oracle rdbms) - PullRequest
0 голосов
/ 16 февраля 2012

Я использовал Oracle rdbms.Мое сопоставление выглядит следующим образом Id(x => x.Tid,"ID").Column("ID").GeneratedBy.TriggerIdentity();

, но запрос SQL в конечном итоге выглядит следующим образом:

NHibernate: INSERT INTO bla bla bla :nhIdOutParam = NULL [Type: Int32 (0)]

Почему nhIdOutParam всегда возвращает значение null ?

Версия fluent-nHibernate: 1.2.0.712.Версия nHibernate: 3.1.0.4000

1 Ответ

0 голосов
/ 16 февраля 2012

Я думал, что это будет работать для оракула, но не для Postgresql. вставка заканчивается возвратом nhIdOutParam, который присваивает сгенерированный идентификатор этому параметру out.

как псевдокод

command.CommandText = sql + " return nhIdOutParam";
command.Parameter.Add(new Parameter { Name = "nhIdOutParam", Type = outparam, Value = 0 });
command.Execute();

returnedId = command.Parameter["nhIdOutParam"].Value;
...