簡體   English   中英

NHibernate泛型類映射

[英]NHibernate mapping of generic class

我對泛型類的映射有疑問。 所以我有一個類規范:

namespace BackOffice.Core.Domains
{
    public abstract class Spec: BaseDomain
    {
        public virtual string Name { get; set; }
        public virtual TypeSpecValue TypeSpecValue { get; set; }
    }

    public enum TypeSpecValue
    {
        StringType = 0,
        DecimalType = 1,
        Booltype = 2
    };
}

對於這個課程,我有映射並且可以工作。 然后我有通用類SpecValue:

namespace BackOffice.Core.Domains
{
    public class SpecValue<T>: BaseDomain where T : Spec
    {
        public virtual T Spec { get; set; }
        public virtual string StrValue { get; set; }
        public virtual decimal NumValue { get; set; }
        public virtual bool BoolValue { get; set; }
    }
}

因此,我需要映射此類。 我想看完這樣文章

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="Transport.Core"
                   namespace="BackOffice.Core.Domains">
  <class name="SpecValue`1[BackOffice.Core.Domains.Spec], Transport.Core"  table="spec_value">
    <id name="Id" unsaved-value="0" type="int">
      <column name="id" not-null="true"/>
      <generator class="native"/>
    </id>
    <many-to-one name="Spec" class="BackOffice.Core.Domains.Spec,Transport.Core" column="spec_id" fetch="join"/>
    <property name="StrValue" type="String">
      <column name="str_value" />
    </property>
    <property name="NumValue" type="Decimal">
      <column name="num_value" />
    </property>
    <property name="BoolValue" type="YesNo">
      <column name="bool_value" />
    </property>
    <many-to-one name="Model" class="BaseModel,Transport.Core" column="model_id" cascade="none" />
  </class>
</hibernate-mapping>

我怎么了 這種映射不起作用,我不明白為什么。 我已經檢查了程序集和名稱空間的名稱,沒關系。 有什么建議么? 我很高興在這個問題上有任何幫助。

確保在屬性中將映射文件設置為“嵌入式資源”。 否則,該文件將不包含在生成的DLL中,然后NHibernate將找不到該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM