0

想知道是否有人可以指出我正确的方向..

我的 sqlserver 数据库中目前有以下 3 个表

参数 ParameterId ParameterName

ParameterValue ParameterValueId ParameterValue

ParameterParameterValue ParameterId ParameterValueId

我试图在 Parameter 域对象也将获取所有 ParameterValue 对象的位置获取它(我猜 Parameter 与 ParameterValue 具有一对多关系,因为参数可以有多个值)但我'我无处可去-我实现的 msot 是获取第一个值,而不是全部 :(

如果有人愿意提供帮助或任何我可以发布一些代码和/或我正在使用的映射的东西 - 一如既往,非常感谢任何帮助:)

参数映射

<?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
               namespace="StockMarketAdvisorDatabaseAccess.Domain" 
               assembly="StockMarketAdvisorDatabaseAccess">
<class name="Parameter" table="Parameter">
        <id name="ParameterId">
            <column name="ParameterId" sql-type="int" not-null="true" />
            <generator class="identity" />
        </id>
        <property name="ParameterName" />
        <bag name="ParameterValues" table="ParameterParameterValue" cascade="none">
            <key column="ParameterValueId" />
            <one-to-many class="ParameterValue" />
        </bag>
    </class>
</hibernate-mapping>

ParameterValue 的映射

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
                   namespace="StockMarketAdvisorDatabaseAccess.Domain" 
                   assembly="StockMarketAdvisorDatabaseAccess">
    <class name="ParameterValue" table="ParameterValue">
        <id name="ParameterValueId">
            <column name="ParameterValueId" sql-type="int" not-null="true" />
            <generator class="identity" />
        </id>
        <property name="Value" column="ParameterValue"/>
     </class>
</hibernate-mapping>

再次感谢,刚开始使用 nHibernate,所以仍在努力解决它!:)

4

1 回答 1

1

您的问题是您描述的是一件事(1-many),但您的表结构是另一件事(many-many)

如果每个参数需要多个值,则应将表结构简化为:

参数
-------------
* ParameterId
ParameterName


ParameterValue
--------
* ParameterValueId
ParameterId
ParameterValue

然后您的映射可以使用一对多映射:

<class name="Parameter" table="Parameter">
    <id name="ParameterId">
        <column name="ParameterId" sql-type="int" not-null="true" />
        <generator class="identity" />
    </id>
    <property name="ParameterName" />
    <bag name="ParameterValues" table="ParameterValue" cascade="none">
        <key column="ParameterId" />
        <one-to-many class="ParameterValue" />
    </bag>
</class>
于 2012-11-26T21:52:59.520 回答