0

我使用的是Oracle RDBMS总是返回null(甲骨文RDBMS)。 我的映射看起来像这样 Id(x => x.Tid,"ID").Column("ID").GeneratedBy.TriggerIdentity();流畅,nHinernate TriggerIdentity nhIdOutParam

但SQL请求结束看起来像:

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

为什么nhIdOutParam总是返回价值?

流利,NHibernate的版本为1.2.0.712。 NHibernate的版本为3.1.0.4000

+0

我认为这会为甲骨文工作,但不会对PostgreSQL。插入以'returns nhIdOutParam'结束,它将生成的id分配给这个out参数 – Firo 2012-02-16 13:40:18

回答

0

我认为这会为甲骨文工作,但不会对PostgreSQL。插入以返回的nhIdOutParam结束,它将生成的id分配给此out参数。

为伪

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

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