首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fluent nHibernate子类的子类

fluent nHibernate子类的子类
EN

Stack Overflow用户
提问于 2009-12-17 00:12:59
回答 3查看 2.4K关注 0票数 1

我的模型是这样的:

代码语言:javascript
复制
public class SelectionItem : BaseEntity // BaseEntity ==> id, timestamp stuff
{//blabla}

public class Size : SelectionItem
{//blabla}

public class Adultsize : Size
{//blabla}

我想使用fluent nhibernate的class-hierarchy per-table-method

代码语言:javascript
复制
public class SelectionItemMap : BaseEntityMap<Entities.SelectionItem.SelectionItem>
{
    public SelectionItemMap()
    {
        Map(x => x.Name);
        Map(x => x.Picture);
        Map(x => x.Code);
        DiscriminateSubClassesOnColumn("SelectionItemType");
    }
}

并在以下子类上重置DiscriminateSubClassesOnColumn:

代码语言:javascript
复制
public class SizeMap : SubclassMap<Size>
{
    DiscriminateSubClassesOnColumn("SizeType")
}

public Adultsize : SubclassMap<Adultsize>
{}

但这不管用。

我在网上找到了一个解决方案:link text,但根据resharper的说法,这种方法是折旧的。

如何解决?感谢您提供更多信息。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-18 20:16:33

您不需要在SubclassMap中添加DiscriminateSubClassesOnColumn()。它将类名作为鉴别器的值。

代码的正确版本

代码语言:javascript
复制
public class SelectionItem : ClassMap<SelectionItem>
{
    public SelectionItem()
    {
        Id(x => x.Id);
        DiscriminateSubClassesOnColumn("SelectionItemType");
    }
}

public class Size : SubclassMap<Size>
{
}

public class Adultsize : SubclassMap<Adultsize>
{
}
票数 0
EN

Stack Overflow用户

发布于 2009-12-17 00:26:27

当您使用class-hierarchy-per-table-method时,使用一列作为判别器,然后为每个具体的类定义该判别器的值。

尝试如下所示:

代码语言:javascript
复制
    public class SelectionItem : ClassMap<SelectionItem>
    {
        public SelectionItem()
        {
            Id(x => x.Id);
            DiscriminateSubClassesOnColumn("SelectionItemType");
        }
    }

    public class Size : SubclassMap<Size>
    {
        public Size()
        {
             DiscriminatorValue("Size")
             DiscriminateSubClassesOnColumn("SizeType");
        }
    }

    public class Adultsize : SubclassMap<Adultsize>
    {
        public Adultsize()
        {
             DiscriminatorValue("Adult")
        }
  }
票数 1
EN

Stack Overflow用户

发布于 2010-04-28 21:13:09

这不起作用,DiscriminateSubClassesOnColumn()在SubclassMap中不可用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1915730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档