私は所有者と呼ばれる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. Fluent NHibernateで2つのテーブルを1つのクラスにマップする方法
- 2. 条件付きでPerlで2つの配列の1つに移動する
- 3. と条件付きの2つのフィールドを持つmongoosastic検索
- 4. MYSQL - 条件付き2つのフィールドでの注文
- 5. 1つのモデルで2つの異なるフォームで条件付きの検証
- 6. 2つの約束をトリガし、条件付きで1つを待つ方法
- 7. 1つのビューで2つのモデルをif条件付きで表示
- 8. Ectoでの条件付き検証 - 2つのフィールドのうちの1つが必要です
- 9. 2つの条件付き分割ケースを1つに結合する
- 10. Rで2つのデータセットを条件付きでマージする
- 11. Scalaで条件付きで2つのデータフレームをマージする
- 12. 2つの配列から条件付きで削除
- 13. 2つのDataFrameを結合し、1つの列を条件付きで置き換える方法
- 14. 条件の2つのフィールド/列を比較するには?
- 15. 条件付き分割に2つの日付フィールドを組み合わせる
- 16. 1つのSwitchステートメントでパターンマッチし、条件付きでバインドする
- 17. SQL - 条件付きの2つのテーブルの条件
- 18. 角度2 - 1つのルートコンポーネントの条件付きサブコンポーネントは
- 19. 条件付き検証 - 2つのフィールドのうちの1つが存在する必要があります
- 20. MySQL - 2つのテーブルを条件付きで結合する
- 21. 2つのDataTableを条件付きで結合する方法
- 22. 条件付きで2つのリストをマージする
- 23. 2つのコンポーネントを条件付きでレンダリングする方法は?
- 24. 流暢なNHibernateマッピング(条件付きで1対1)
- 25. 「HasMany」エンティティを1つのクエリで取得する - Fluent-NHibernate
- 26. 2つの条件付きで循環するJavaScriptプログラミング
- 27. シフトつのセルを条件付きで
- 28. Pandas Dataframeの2つの列の条件付き更新
- 29. 条件付きテストとpandasデータフレームの2つの列の比較
- 30. Pythonで条件付きで2つのデータベースを一致
これはうまくいくはずですが、NHibernateでこれを行う方法が見つかったと思いますが、後ほど詳しく説明します。 – JEGardner
私はFluent NHibernateでFormulaを使ってこれを解くことができました: Map(x => x.Identification).Formula( "CASE WHEN StructureType = '私はSSN ELSE TaxIDを終了しました。 (私の元の記事では、私は「I」と「C」の間にあると言っていましたが、実際には「I」と他のすべてのタイプの間にあります) – JEGardner