fluent-nHinernate TriggerIdentity nhIdOutParam始终返回null(Oracle rdbms)

时间:2012-02-16 10:19:16

标签: c# nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我使用的是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 :(得分:0)

我认为这对oracle有用,但不适用于Postgresql。插入以返回nhIdOutParam结束,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;