我正在使用oracle和nhibernate。我可以选择一个列表 db表中的对象(表中的所有项)都是Iquerable,但是当我尝试时 使用它发送的“linq where子句”从列表中选择一个项目 对oracle db的无意义查询。它会收到无效的标识符错误。
我可以在查询中获得整个列表而没有任何错误,它在我使用时发生 where子句。
(有关查询和映射文档的一些信息如下) 查询:
SELECT this_.ID as ID33_0_,
this_.BUNDLEID.........................Where bundleitem1_.ID = :p0
(bundleitem1_.ID无效)
相关的映射部分:
<component name="BundleItem"
class="PromissoryNotes.Server.Data.Bundle,
PromissoryNotes.Server.Data">
<property name="Id" column="BUNDLEID" type="decimal"></property>
Copmponent“Bundle”在另一个xml文档中有一个映射,我意识到,当我将Bundle类更改为另一个未映射的类时,它可以工作。问题是关于将映射类作为Bundle的组件。什么是解决方案,任何想法?
答案 0 :(得分:1)
你确定这应该真的被映射为一个组件吗?这应该是多对一的映射吗?
也许是这样的:
<many-to-one name="BundleItem" column="BundleId" cascade="save-update" />
答案 1 :(得分:0)
我明白了,这是一个nhibernate错误。映射类不能用作组件。