Nhibernate组件具有映射类问题

时间:2009-12-02 07:06:11

标签: linq oracle nhibernate

我正在使用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的组件。什么是解决方案,任何想法?

2 个答案:

答案 0 :(得分:1)

你确定这应该真的被映射为一个组件吗?这应该是多对一的映射吗?

也许是这样的:

<many-to-one name="BundleItem" column="BundleId" cascade="save-update" />

答案 1 :(得分:0)

我明白了,这是一个nhibernate错误。映射类不能用作组件。