NHibernate映射泛型类

时间:2009-03-18 22:10:08

标签: xml nhibernate nhibernate-mapping

如何在NHibernate中为泛型类创建映射文件。 说我有一堂课Foo 它在地图文档中的外观如何? class name =“mydll.Foo ????,mydll”......

我知道如果它是Foo它会是: class name =“mydll.Foo`1 [[mydll.Fee,mydll]],mydll”

会是这样的: class name =“mydll.Foo`1 [[mydll.Fee,mydll],[mydll.Fi,mydll]],mydll”(我试过这个,但它没有用。

2 个答案:

答案 0 :(得分:0)

我可能在这里过头了(3天前刚刚开始做NHibernate),但它是否有意义来映射抽象类?你不能实例化一个抽象类,那么,为什么要将它映射到数据呢?

我最好的猜测是你必须将你的子类映射到他们需要的数据,并在你的基类上制作公共/受保护的setter,以便映射它们。这将意味着大量的复制粘贴,因为您以相同的方式为所有(在完美的世界中)子类映射基类。

[编辑]发现:NHibernate: One base class, several mappings

答案 1 :(得分:0)

正确的映射是: class name =“mydll.Foo`2 [[mydll.Fee,mydll],[mydll.Fi,mydll]],mydll”

有两个通用元素,因此将1更改为2。 不确定这是否对类的name属性有效,但它适用于collection-type属性