私は所有者と呼ばれるNHibernateエンティティにSSN列とTaxID列を持っています。これらの2つの値のいずれかを条件付きでより一般的なプロパティ別のプロパティStructureTypeの値に基づいてOwnerエンティティでしたがって、StructureTypeが "I"の場合、SSN値を汎用プロパティにマップし、その "C"をTaxID値を汎用プロパティにマップしたいとします。これはFluent NHibernate(または通常のNHibernate)を使って可能ですか? Ownerエンティティは読み取り専用のエンティティです。何もデータベースに書き戻されません。条件付きで2つの列をFluent NHibernateで1つのフィールドにマップする
1
A
答えて
3
私は流暢NHibernateの中の式を使用してこの問題を解決することができた:
Map(x => x.Identification)
.Formula("CASE WHEN StructureType = 'I' THEN SSN ELSE TaxID END");
(私のオリジナルのポストでは、私はそれだけの間で「I」と「C」の間であったが、実際にあります'I'と他のすべてのタイプ)
1
なぜ、読み取り専用プロパティを追加しないのですか?
public string Identification
{
get
{
string identification = string.Empty;
if (StructureType.Equals("I"))
identification = SSN;
else if (StructureType.Equals("C"))
identification = TaxID;
return identification;
}
}
関連する問題
- 1. 条件付きでPerlで2つの配列の1つに移動する
- 2. Fluent NHibernateで2つのテーブルを1つのクラスにマップする方法
- 3. 1つのモデルで2つの異なるフォームで条件付きの検証
- 4. 1つのビューで2つのモデルをif条件付きで表示
- 5. Rで2つのデータセットを条件付きでマージする
- 6. 2つの列の二つの条件
- 7. 流暢なNHibernateマッピング(条件付きで1対1)
- 8. Excel 2007条件付き2つの条件付き書式設定(別の列に基づく)
- 9. 条件付きの2つのSQLテーブルを結合する
- 10. NHibernate条件付きマッピング
- 11. 条件付きの2つのテーブルにわたるSQlクエリ
- 12. 条件付きフィールドのバックボーンフォーム
- 13. 1つのUIButtonの2つのシーンが1つしかない、条件付きコードが必要
- 14. 2つのわずかに異なるクエリを1つにする - 条件付きのvar?
- 15. gnuplotの条件付きプロット($ 2 == 15 $ 2:? '1/0')線では
- 16. 条件付きの単一のボタンに2つのポップアップ
- 17. NHibernateによる条件付きフェッチ
- 18. 「HasMany」エンティティを1つのクエリで取得する - Fluent-NHibernate
- 19. 2つのコレクションをLINQ-to-Objectsで条件付きでマージする
- 20. 条件付きで1つのWiXプロパティを別の値に設定します
- 21. 1つのプロジェクトに条件付きMSBuildまたはTFSBuild?
- 22. HQLで条件ごとに異なる条件で2つのフィールドをカウントする方法
- 23. 2つの条件の和
- 24. 2つの条件付きのXPath 1.0リターンノード
- 25. 2つ目のテーブルの条件付き複数テーブル結合
- 26. MySqlは条件付きで3つのテーブルを結合する
- 27. 2つの条件でのスカラフィルタ
- 28. 1つのコマンドで条件付きでテーブルの複数の列を更新する
- 29. 2つの条件を持つクリスタル
- 30. Struts 2 - キーの条件付きチェックでマップを反復する構文
これはうまくいくはずですが、NHibernateでこれを行う方法が見つかったと思いますが、後ほど詳しく説明します。 – JEGardner
私はFluent NHibernateでFormulaを使ってこれを解くことができました: Map(x => x.Identification).Formula( "CASE WHEN StructureType = '私はSSN ELSE TaxIDを終了しました。 (私の元の記事では、私は「I」と「C」の間にあると言っていましたが、実際には「I」と他のすべてのタイプの間にあります) – JEGardner