You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NHibernate映射文件仍不支持DOCTYPE特性吗?

关于NHibernate映射文件是否支持DOCTYPE实体引用外部XML的问题

首先得明确告诉你:NHibernate的映射文件确实不支持你在Hibernate 4.2里用到的这种DOCTYPE实体引用外部XML片段的特性,不管是旧版本还是目前的新版本,都没有实现这个功能。

你在Hibernate里的用法是借助XML的实体引用机制,把外部XML片段嵌入到主映射文件中,这个功能依赖于Hibernate所用XML解析器对实体引用的支持,但NHibernate的映射解析逻辑并没有兼容这一点。

如果需要复用映射中的部分配置片段,NHibernate有这些替代方案可以考虑:

  • 使用<import>标签引入完整映射文件:这个标签能让你在主映射文件里引入其他完整的NHibernate映射文件,不过它的作用是加载整个文件内的实体映射,而非插入部分XML片段。示例代码如下:
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      <import resource="YourNamespace.Authorizables.hbm.xml" />
      <!-- 你的其他映射配置 -->
    </hibernate-mapping>
    
  • 通过构建工具或自定义代码合并XML:如果你的需求是复用特定的XML片段(比如你例子中&authorizables;对应的内容),可以在应用构建或启动阶段,用工具(比如MSBuild任务、自定义C#代码)读取并合并这些片段到主映射文件中,再把合并后的内容交给NHibernate配置加载。

总的来说,NHibernate没有提供和你Hibernate用法完全一致的功能,得通过上述替代方案来实现类似的配置复用需求。

内容的提问来源于stack exchange,提问作者user7399085

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:16:53