Я не могу понять, как правильно сопоставить мои отображения с помощью Nhibernate 3.0
У меня есть два POCO:
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)
Как можно избежать наличия объекта Account в классе AccountSummary, как я обычно делал бы с отображением один-ко-многим / многие-к-одному. Вместо того, чтобы мой класс AccountSummary имел объект Account, я хочу, чтобы класс AccountSummary имел свойство AccountNumber, как в определении класса со ссылкой на класс Account.
Я также хотел бы отобразить столбцы trade_date и account_number как натуральный идентификатор или уникальный ключ.
Мои отображения выглядят так:
<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>
Буду признателен за любую помощь.