nhibernate映射文件中的多个程序集和命名空间的类型

Ben*_*Ben 5 nhibernate assemblies namespaces nhibernate-mapping

您可以指定命名空间和程序集以使用HBM文件顶部的类型:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyCorp.MyAssembly" namespace="MyCorp.MyAssembly.MyNamespace">
Run Code Online (Sandbox Code Playgroud)

您是否可以在同一映射文件中使用来自多个程序集/命名空间的类型,如果是,那么这样做的语法是什么?

Ben*_*Ben 5

您可以从HBM文件的顶部删除默认的程序集和名称空间定义,然后每次在映射文件中出现全限定类型名时都指定它们,如下所示:

Namespace.TypeName,Assembly.Name
Run Code Online (Sandbox Code Playgroud)

不漂亮,但是有效。


Die*_*hon 3

正如 Ben 所说,您可以使用限定类型名称。

然而,NHibernate 中通常的做法是将每个类的映射放在单独的文件中,这样更容易维护。

就个人而言,我有时将相关的类分组在同一个文件中,但仅此而已(例如XYHeaderXYDetail)。

对于来自不同程序集的类型(通常意味着不同的子域),我什至使用单独的项目。