0

次のクラスを検討してください。

class Order {
    int OrderId {get; set;}
    int CustomerId {get; set;}
    string CustomerName {get; set;}
    //other fields go here
}

これはOrdersテーブルにマップされます。外部キー関係を介してプロパティCustomerNameをCustomersテーブルにマップすることは可能ですか?

4

2 に答える 2

0

はい、これには結合マッピング要素を使用できます。もう 1 つのオプションは、テーブルの代わりにビューをマップすることです。ただし、可能であれば、オブジェクト指向のアプローチを採用して、Order と Customer の間の多対多の関係をマッピングする必要があります。

于 2010-03-20T23:11:49.490 に答える
0

これには使用しないことを強くお勧めします<join/>。要求したことは達成できますが、別の問題が生じます。

代わりに、Order には Customer との関係が必要です。を使用する方が簡単ですが、必要に応じて名前を投影できますorder.Customer.Name

したがって、要約すると次のようになります。

Customer1)プロパティを追加Order

public virtual Customer Customer { get; set; }

2) プロパティをマップします (この例では、CustomerId は FK 列の名前です)

<many-to-one name="Customer" column="CustomerId"/>

3) 特にプロパティが必要な場合はCustomerName、それを Customer から射影します。

public virtual string CustomerName { get { return Customer.Name; } }
于 2010-03-21T21:06:58.997 に答える