如何教NHibernate使用返回的自定义sql-insert中使用的存储过程的标量?

时间:2017-08-21 15:57:09

标签: c# nhibernate nhibernate-mapping

我们有一个NHibernate映射,我们必须使用自定义存储过程进行插入,更新和删除。我们的映射如下。

[HttpGet("Index")]
public async Task<IActionResult> Index([FromQuery(Name ="sortValue")]string sortValue,[FromQuery(Name ="showDeactivated")] bool showDeactivated)

由于某些遗留原因,我们使用<class name="MyNamespace.MyClass" table="[MYTABLE]"> <id name="Id" column="MYTABLE_ID"></id> ... <sql-insert check="none"> EXECUTE SP_MY_TABLE_INSERT @p1 = ?, @p2 = ? </sql-insert> </class>

上面提到的存储过程将插入的ID作为标量返回。但是,当我们提交NHibernate事务时,返回的ID不会填充到实体实例中,因此我们仍然会在check="none"属性中看到值0

我们如何教NHibernate将返回的标量视为插入的ID?

更新

我已尝试使用Id生成器,但在我的理解中,这种情况可以解决这个问题,但我没有成功,trigger-identity仍然是Id

0 个答案:

没有答案