如何在 NHibernate 中为泛型类创建映射文件。假设我有一个类 Foo 它在映射文档中的外观如何?类名="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" (我试过这个,但没有用。
如何在 NHibernate 中为泛型类创建映射文件。假设我有一个类 Foo 它在映射文档中的外观如何?类名="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" (我试过这个,但没有用。
我可能在这里不知所措(3天前刚开始做NHibernate),但是映射一个抽象类是否有意义?你不能实例化一个抽象类,那么,你为什么要把它映射到数据上呢?
我最好的猜测是,您必须将您的子类映射到他们需要的数据,并在您的基类上公开/受保护的设置器,以便也映射这些数据。这将意味着大量的复制粘贴,因为您会以相同的方式为所有(在完美世界中)子类映射您的基类。
[编辑] 发现这个:NHibernate:一个基类,几个映射
正确的映射是:class name="mydll.Foo`2[[mydll.Fee, mydll],[mydll.Fi, mydll]], mydll"
有两个通用元素,因此将 1 更改为 2。不确定这对类的 name 属性是否有效,但它适用于 collection-type 属性