私は、nhibernateがUsersやAddressesのようなテーブルをどのようにマッピングするかを理解しています。 nhibernateは、実際にはエンティティ自体ではないテーブルをどのように扱いますか?
しかし、私のようなテーブルがある場合:列のユーザーID、AndressIDとUsers_Addressesを。
このマッピングを作成して通常のエンティティのようにする必要がありますか?私が内部結合で参照するテーブルです。
私は、nhibernateがUsersやAddressesのようなテーブルをどのようにマッピングするかを理解しています。 nhibernateは、実際にはエンティティ自体ではないテーブルをどのように扱いますか?
しかし、私のようなテーブルがある場合:列のユーザーID、AndressIDとUsers_Addressesを。
このマッピングを作成して通常のエンティティのようにする必要がありますか?私が内部結合で参照するテーブルです。
NHibernateでは、データベースレイアウトとは独立してコードを設計します。データベースのテーブルやカラムとまったく同じクラスを作成する必要はありません(また、作成する必要はありません)。 例:ユーザーが複数のアドレスを持つことができ
public class User
{
public IList<Address> Addresses { get; private set; }
public int Id { get; set; }
}
マッピングは、どのようなアドレスとユーザーとの間の関係があるに依存しますか?
(私は多くの ここで、外との関係の参加に多くを期待します)住所・アドレス。 マッピングは、ユーザークラスとアドレスクラスの作成方法によっても異なります。
NHibernateのアイデアは、好きなようにコードを書いて、後でそれをデータベースにマッピングすることです。
あなたが議論しているシナリオでは、アドレスは通常値型とみなされます。ユーザーの外部に本質的な識別情報はありません。
nHibernateの値の型は、コンポーネントとしてマップされます。値型のコレクションは複合要素のセットとしてマップされます。
詳細は、https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/components.htmlを参照してください。