簡體   English   中英

使用fluent-nhibernate,是否存在使一對多關系中的外鍵列不為空的約定?

[英]Using fluent-nhibernate, is there convention to make the foreign-key column in one-to-many relation not null?

我正在使用流暢的nhibernate約定來映射我的實體:

 public class HasManyConvention : IHasManyConvention
    {
        public void Apply(FluentNHibernate.Conventions.Instances.IOneToManyCollectionInstance instance)
        {
            instance.Key.Column(instance.EntityType.Name + "ID");
            instance.Cascade.AllDeleteOrphan();
        }
    }

所以這個約定生成以下hibernate映射:

<class xmlns="urn:nhibernate-mapping-2.2" mutable="true" name="ParentType, ParentTypeAssembly" table="ParentTable">
   <id name="ParentIDID" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="0">
     <column name="ParentID" />
     <generator class="identity" />
   </id>

    <bag cascade="all-delete-orphan" name="Childs" mutable="true">
      <key>
        <column name="ParentID" />
      </key>
      <one-to-many class="ChildType, ChildTypeAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </bag>
  </class>
</hibernate-mapping>

如何修改約定以使子表中的ParentID不為空?

所以它看起來像這樣:

  <key>
    <column name="ParentID" not-null="true" />
  </key>

在公約中似乎沒有任何方法可以做到這一點。 查看實現HasManyConvention的測試和IOne​​ToManyCollectionInstance接口上的方法,我沒有看到任何設置not-null的方法。

你可能想看看這個問題

暫無
暫無

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

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