0

だから、私はこの設定で立ち往生しています...仮説は、子供の名簿を持つクラスであり、子供には男の子と女の子の2つのタイプがあります

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"; } }
}

(ほとんどの場合、これは悪い例です)... db から子のリストを取得する場合、コレクションに識別子の値を指定する必要がありますか、それとも nHibernate で Child に対して行ったマッピングを使用できますか? /Boy/Girl もう?

私が取り組んでいるプロジェクトでこれを同様に行うと、nHibernate から "WrongClassException" がスローされるためです。


これだけでははっきりしない気がします。私のプロジェクトでは、データベースに呼び出して子供のリストを引き出すことができるマッピング処理を既に取得しており、期待どおりに男の子と女の子をマッピングしています。私がやろうとしているのは、クラスの名簿を呼び出して、コレクションにすべての男の子と女の子が含まれている子供のリストを取得することです。

4

2 に答える 2

0

あなたが探しているのはNHibernate - Inheritance Mappingだと思います

于 2012-04-10T21:49:11.487 に答える
0

愚かなものになってしまった。考慮していなかった 3 番目のレベルがあり、ClassRoster と School の間のマッピングが問題でした...「High School」ではなく「School」にリンクするには、1 対 1 のマッピングを行う必要があります。 "。

コードを十分に一般化できれば、さらに参照できるようにここに投稿します...正直なところ、これは pebcak エラーでした。

于 2012-04-11T14:41:38.953 に答える