新しいプロジェクトに取り掛かり、POCOを設計するたびに、私は自分自身と精神的な議論を交わしています。私は、外部キーの関連付けを支持するように見える多くのチュートリアル/コードサンプルを見てきました。
外部キー協会
public class Order
{
public int ID { get; set; }
public int CustomerID { get; set; } // <-- Customer ID
...
}
独立した団体とは対照的に:
独立した協会
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
私は過去にNHibernateを使用しており、OOを感じるだけでなく(遅延読み込みを使用して)独立した関連付けを使用して、IDだけでなく、Customerオブジェクト全体にアクセスできるという利点があります。これにより、たとえば、Orderインスタンスを取得Order.Customer.FirstName
して、明示的に結合を行わなくても実行できるため、非常に便利です。
要約すると、私の質問は次のとおりです。
- 独立したアソシエーションを使用することに重大な欠点はありますか?そして...
- ない場合、外部キーの関連付けを使用する理由は何でしょうか?