Реализуйте nhibernate.Класс + абстрактный базовый класс - PullRequest
2 голосов
/ 10 октября 2011

У меня есть следующие настройки базы данных:

enter image description here

Мне нужен файл nhibernate, который сопоставляет его с:

  • PowerPrognosisUsageSubmission класс
  • PowerPrognosisWindSubmission класс
  • PowerPrognosisSubmissionBase абстрактный базовый класс

Хотя я никуда не денусь. Вот моя попытка:

Я пытался реализовать PowerPrognosisUsageSubmission

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping namespace="DC.Client.Models.Model" assembly="DC.Client.Models" xmlns="urn:nhibernate-mapping-2.2">
  <class name="PowerPrognosisUsageSubmission" table="PowerPrognosisSubmissionBase" schema="`dbo`" mutable="true" lazy="false">
    <id name="PowerPrognosisSubmissionId" access="property" column="`PowerPrognosisSubmissionBaseID`">
      <generator class="native" />
    </id>
    <property name="Date" column="`Date`" />
    <property name="Hour" column="`Hour`" />
    <property name="Direction" column="`Direction`" />
    <property name="Submission" column="`Submission`" />
    <property name="Basis" column="`Basis`" />
    <many-to-one name="PowerPrognosisUsageArea" class="PowerPrognosisUsageArea" column="`PowerPrognosisAreaBaseID`" not-null="false" lazy="false" />
    <joined-subclass name="PowerPrognosisUsageSubmission" table="PowerPrognosisUsageSubmission">
      <key column="`Usage`" />
    </joined-subclass>
  </class>
</hibernate-mapping>

Любая помощь?

Ответы [ 3 ]

1 голос
/ 10 октября 2011

Я решил это самостоятельно

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping namespace="DC.Client.Models.Model" assembly="DC.Client.Models" xmlns="urn:nhibernate-mapping-2.2">
  <class name="PowerPrognosisSubmissionBase" table="PowerPrognosisSubmissionBase" schema="`dbo`" mutable="true" lazy="false">
    <id name="PowerPrognosisSubmissionId" access="property" column="`PowerPrognosisSubmissionBaseID`">
      <generator class="native" />
    </id>
    <property name="Date" column="`Date`" />
    <property name="Hour" column="`Hour`" />
    <property name="Direction" column="`Direction`" />
    <property name="Submission" column="`Submission`" />
    <property name="Basis" column="`Basis`" />
    <many-to-one name="PowerPrognosisAreaUsage" class="PowerPrognosisAreaUsage" column="`PowerPrognosisAreaBaseID`" not-null="false" lazy="false" />
    <joined-subclass name="PowerPrognosisSubmissionUsage" table="PowerPrognosisSubmissionUsage">
      <key column="`PowerPrognosisSubmissionBaseID`" />
      <property name="Usage" column="`Usage`" />
    </joined-subclass>
    <joined-subclass name="PowerPrognosisSubmissionWind" table="PowerPrognosisSubmissionWind">
      <key column="`PowerPrognosisSubmissionBaseID`" />
      <property name="PriceAreaEffect" column="`PriceAreaEffect`" />
      <property name="ResponsibleEffect" column="`ResponsibleEffect`" />
      <property name="W2UShare" column="`W2UShare`" />
      <property name="PointCarbonShare" column="`PointCarbonShare`" />
    </joined-subclass>
  </class>
</hibernate-mapping>
0 голосов
/ 10 октября 2011

Возможно, вам следует прочитать руководство NHibernate . Глава 8 содержит все подробности о наследовании.

0 голосов
/ 10 октября 2011

Я бы посоветовал вам взглянуть на FluentNhibernate, по моему мнению, он дает гораздо лучший способ сопоставления таблиц с вашими классами сущностей.

Кроме того, вы можете попробовать этот инструмент, он способен генерировать файлы отображения hbm.xml или fluentnhibernate для вас.

http://nmg.codeplex.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...