0

所以,我坚持这个设置......假设是一个有孩子名单的班级,并且有两种类型的孩子:男孩和女孩

public class ClassRoster
{
public IList<Child> Children{get;set;}
}

public abstract class Child
{
public string Sex {get;}
}

pubic class Boy
: Child
{
public override string Sex { get { return "M"; } }
}

public class Girl
: Child
{
public override string Sex { get { return "F"; } }
}

(很可能,这是一个不好的例子)......当我从数据库中检索子列表时,我是否需要为集合指定鉴别器值,或者 nHibernate 可以使用我为 Child 完成的映射/男孩/女孩已经?

我之所以这么说,是因为当我为我正在从事的项目做类似的事情时,我得到了从 nHibernate 抛出的“WrongClassException”。


我觉得这还不够清楚。在我的项目中,我已经处理了映射,我可以调用到数据库中,并拉出一个孩子列表,它会按预期映射男孩和女孩。我正在尝试做的是调用班级名册,并获取包含所有男孩和女孩的儿童名单。

4

2 回答 2

0

我相信您正在寻找的是NHibernate - 继承映射

于 2012-04-10T21:49:11.487 回答
0

最终成为愚蠢的东西。我没有考虑到第 3 级,而 ClassRoster 和 School 之间的映射是问题......我必须进行一对一的映射才能链接到“School”而不是“High School” ”。

如果我可以足够概括代码,我会将其发布在这里以供进一步参考……老实说,这是一个 pebcak 错误。

于 2012-04-11T14:41:38.953 回答