嗨我試圖在一個位置保持基類的公共屬性,並使用XML ENTITY在Nhibernate映射文件中引用。在Nhibernate中使用Doctype
映射文件
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-mapping [
<!ENTITY BasePropertyList SYSTEM "BasePropertyList.xml">
]>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Model" namespace= "Model" default-lazy="false">
<class name="DerivedClass">
&BasePropertyList;
</class>
</hibernate-mapping>
BasePropertyList.xml
<id name="ID" column="ID" type="Int32" unsaved-value="0">
<generator class="native"></generator>
</id>
<property name="CreatedDate" update="false" />
<property name="CreatedBy" update="false" />
<property name="LastModifiedDate" />
<property name="LastModifiedBy" />
我得到以下異常
System.Xml.XmlException:DTD是此XML文檔中禁止。 在NHibernate.Cfg.Configuration.LogAndThrow(例外例外)
我在這裏丟失什麼? DOCTYPE如何在Nhibernate映射文件中工作?
我不知道doctype,但爲什麼不使用basepropertylist中屬性的公共子類?這將節省您一些ctrl + c/ctrl + v的 – Paco 2010-02-08 21:20:21
@Paco ...我假設OP已經完成了這些對象,現在也希望繼承在映射文件中工作。 AFAIK這是不可能做到這一點與映射文件... – dotjoe 2010-02-08 21:30:22
我指的是從Nhibernate文檔本節。 <<<<< 「如果您想避免重複,請考慮使用XML實體(例如DOCTYPE聲明中的[<!ENTITY allproperties SYSTEM」allproperties.xml「>]和映射中的&allproperties;)」 >> >> – sukh 2010-02-11 23:49:12