【问题标题】:NHibernate mapping generic classesNHibernate 映射泛型类
【发布时间】:2009-03-18 22:10:07
【问题描述】:

如何在 NHibernate 中为泛型类创建映射文件。 说我有一个班级 Foo 它在映射文档中的外观如何? 类名="mydll.Foo ???? , mydll" ...

我知道如果它是 Foo 它会是: 类名="mydll.Foo`1[[mydll.Fee, mydll]], mydll"

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

【问题讨论】:

    标签: xml nhibernate nhibernate-mapping


    【解决方案1】:

    我可能有点不知所措(3 天前刚开始做 NHibernate),但是映射一个抽象类是否有意义?你不能实例化一个抽象类,那你为什么要把它映射到数据上呢?

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

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

    【讨论】:

      【解决方案2】:

      正确的映射应该是: 类名="mydll.Foo`2[[mydll.Fee, mydll],[mydll.Fi, mydll]], mydll"

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-09
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2016-08-11
        • 1970-01-01
        • 2011-08-18
        • 2015-05-23
        相关资源
        最近更新 更多