简体   繁体   English

实现nhibernate。 类+抽象基类

[英]Implement nhibernate. Class + abstract base class

I have the following database setup: 我有以下数据库设置:

在此处输入图片说明

I need a nhibernate file that maps it to: 我需要一个将其映射到的nhibernate文件:

  • PowerPrognosisUsageSubmission class PowerPrognosisUsageSubmission
  • PowerPrognosisWindSubmission class PowerPrognosisWindSubmission
  • PowerPrognosisSubmissionBase abstract base class PowerPrognosisSubmissionBase抽象基类

Although, I am getting nowhere. 虽然,我无处可去。 Here is my attempt: 这是我的尝试:

I tried implementing PowerPrognosisUsageSubmission 我尝试实现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>

Any help? 有什么帮助吗?

I solved it on my own 我自己解决了

<?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>

I would suggest you take a look at FluentNhibernate, in my opinion, it gives a much better way to mapping tables to your entity classes. 我建议您看一看FluentNhibernate,它为将表映射到实体类提供了更好的方法。

Also, you might wanna give this tool a go, it's capable of generating hbm.xml or fluentnhibernate mapping files for you. 另外,您可能想尝试一下该工具,它能够为您生成hbm.xml或fluentnhibernate映射文件。

http://nmg.codeplex.com/ http://nmg.codeplex.com/

Maybe you should read the NHibernate manual . 也许您应该阅读NHibernate手册 Chapter 8 has all the details on inheritance. 第8章详细介绍了继承。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM