7

私は、幸運にも読み取り専用の目的でレガシー データベースと統合しなければならないといううらやましい状況にあり、NHibernate を使用することにしました。今まではすべて順調でしたが、頭を悩ませている新しい要件があります。

今日まで、テーブルには識別子として機能する 1 つの列がありましたが、場合によっては、複数の識別子列が必要になることがわかりました。これはNHibernateで可能ですか?

数式の使用を検討しましたが、これは機能しますが、「不明な」サブクラス (まだマッピングされていないサブクラス) を除外する必要があるという問題があります。たとえば、私はこれを持っています:

DiscriminateSubClassesOnColumn("")
    .Formula("case ... when ... then ... when .. then ... else 'unknown' end");

「不明」なものをすべて除外できるようにしたいのですが...

編集: 可能な解決策は を使用することだと思いますが、AlwaysSelectWithValue()これを有効にするとどのような影響がありますか? forcenhibernate マッピング xmlと同じだと思います。

4

1 に答える 1

2
public BaseClassMap()
{
    Where("discriminatorColumn <> 'unknown'");
    // or
    Where("discriminatorColumn = 'known1' or discriminatorColumn = 'known2'");
}
于 2011-11-16T16:43:21.097 に答える