如何在NHibernate中映射嵌套泛型

时间:2010-02-03 17:31:32

标签: nhibernate generics

在NHibernate中,您可以映射这样的泛型

<class name="Units.Parameter`1[System.Int32], Units" table="parameter_int"  >
</class>

但是我怎么能像这样映射一个类呢?

Set<T> where T is a Parameter<int> like this Set<Parameter<int>>

我的映射hbm.xml看起来像这样失败

<class name="Set`1[[Units.Parameter`1[System.Int32], Units]],Units"  table="settable"/> 

我简化了我的映射,以便非常清楚地表达我的观点。基本上我希望NHibernate映射具有泛型类型参数的泛型类。

希望我从google了解是NHibernate无法将名称解析为TypeNameParser.Parse()中的正确类型,这会在将映射添加到配置时导致以下错误

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown. Parameter name: typeName@31

有人找到解决这个限制的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为您必须将其映射为自定义类型。请参阅this article和google了解IUserType。