是否可以在不使用Id的情况下在NHibernate中进行映射?
我要做的是,使用调用存储过程
session.CreateSqlQuery( myQuery ).AddEntity( typeof( MyEntity ) );
Run Code Online (Sandbox Code Playgroud)
该过程是一个聚合,并且没有返回Id字段,但我仍然希望利用NHibernate映射返回到实体的数据.到目前为止,我唯一想到的是让程序添加一个字段"O as Id"或者其他东西,让实体有一个假的Id字段.
即使没有ID字段,您的实体也必须以某种方式“唯一”。
确定将哪些属性放在一起时必须是唯一的,并在它们上使用复合键...
<composite-id>
<key-property name="Property1" column="Column1"/>
<key-property name="Property2" column="Column2"/>
</composite-id>
Run Code Online (Sandbox Code Playgroud)
我发现这确实不可能。从存储过程返回的数据也必须有一个 Id。它只是创建一个带有 Id 的虚拟列,以及对象上的虚拟属性,但我只是决定手动将 NHibernate 返回的数据转换为对象。
基本上,您不应该在 NHibernate 中使用存储过程。毕竟它是一个 ORM。就我而言,我别无选择,只能使用该程序。
| 归档时间: |
|
| 查看次数: |
9261 次 |
| 最近记录: |