我無法弄清楚如何讓我正確的映射與NHibernate 3.0NHibernate的映射問題
我有兩個波蘇斯:
public class Account
{
public virtual string AccountNumber { get; set; }
public virtual IList<AccountSummary> AccountSummaries { get; set; }
}
public class AccountSummary
{
public virtual uint Id { get; protected set; }
public virtual string AccountNumber { get; set; }
public virtual DateTime TradeDate { get; set; }
}
我想在班這樣的表映射:
表:賬戶(柱:ACCOUNT_NUMBER)
表:account_summaries(柱:ID,柱:trade_date,柱:ACCOUNT_NUMBER)
如何避免在AccountSummary類中擁有Account對象,因爲我通常會使用一對多/多對一映射。而不是我的AccountSummary類具有Account對象,我希望AccountSummary類具有Account類的屬性,就像類定義中的AccountNumber屬性一樣,並引用了Account類。
我還想將trade_date和account_number列映射爲natural-id或unique-key。
我的映射是這樣的:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="FundAccountDBExperiment"
namespace="FundAccountDBExperiment.Models">
<class name="Account" table="accounts">
<composite-id>
<key-property name="AccountNumber" column="account_number" length="40"/>
</composite-id>
<bag name="AccountSummaries" table="account_summaries" cascade="all-delete-orphan" inverse="true">
<key column="account_number"/>
<one-to-many class="AccountSummary"/>
</bag>
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="FundAccountDBExperiment"
namespace="FundAccountDBExperiment.Models">
<class name="AccountSummary" table="account_summaries">
<id name="Id" column="id">
<generator class="native"/>
</id>
<property name="TradeDate" column="trade_date" type="date" not-null="true"/>
<join table="account">
<key column="acount_number"/>
</join>
</class>
</hibernate-mapping>
任何形式的幫助,將不勝感激。
廣東話你AccountSummary的映射下,作爲acount_number一個簡單的財產? – sternr
爲什麼你想「避免在AccountSummary類中擁有Account對象」呢?你試圖解決什麼是真正的問題? – Wolfgang
如果我將Account映射爲AccountSummary類中的對象,則需要重構代碼。我更喜歡讓AccountSummary類具有一個AccountNumber字符串屬性,這意味着不需要重構。 – Filip