1

データベースにSSN列とTaxID列を持つOwnerというNHibernateエンティティがあり、これら2つの値の1つを、別のプロパティの値に基づいて、Ownerエンティティのより一般的なプロパティに条件付きでマッピングしたいと思います。 StructureType。したがって、StructureTypeが "I"の場合、SSN値をジェネリックプロパティにマップし、その "C"の場合、TaxID値をジェネリックプロパティにマップします。Fluent NHibernate(または通常のNHibernate)を使用してこれは可能ですか?所有者エンティティは読み取り専用エンティティであり、データベースには何も書き戻されません。

4

2 に答える 2

3

Fluent NHibernate の Formula を使用してこれを解決できました。

Map(x => x.Identification)
.Formula("CASE WHEN StructureType = 'I' THEN SSN ELSE TaxID END");

(私の最初の投稿では、「I」と「C」の間であると言いましたが、実際には「I」と他のすべてのタイプの間です)

于 2012-05-07T12:14:06.303 に答える
1

読み取り専用プロパティを追加してみませんか?

public string Identification
{
   get
   {
       string identification = string.Empty;
       if (StructureType.Equals("I"))
           identification = SSN;
       else if (StructureType.Equals("C"))
           identification = TaxID;
       return identification;
   }
}
于 2012-05-04T17:56:59.440 に答える