-1

私は、データ マッパー パターンを使用するデータ アクセス レイヤーに取り組んでいます。コードの実際の構造は、たとえば次のとおりです。

public class Person {
    public int Age
    public string FirstName
    public string LastName
    public List<Address> Addresses
    ...
}

public class PersonMapper {
    public Person GetPersonById(int id)
    public List<Person> GetAll()
    public bool UpdatePerson(Person person)
    ...
}

同じ名前のデータベーステーブルに対応する非常に多くのクラスがあります。

私の質問は次のとおりです。

  1. 私のアプローチは正しいですか?すべてのテーブルをマッピングしたら、ドメイン レイヤーで使用します。

  2. Mapper クラスでは、これらのクラスと同じ名前のテーブルでのみ機能するメソッドを使用します。(Personクラス -> Persons db テーブル、Orderクラス -> Orders db テーブルなど) しかし、データベースから高度な選択をマップする最良の方法は何ですか。これには、より多くのテーブルへの結合が含まれます。たとえばPerson、彼のすべてを選択したいのですが、プロパティと使用Orders.が含まれる Person のドメインモデルを作成する必要がありますか?List<Orders>PersonMapperOrderMapper

4

1 に答える 1

3

DAOパターンを参照してください。

一般に、データベース内のすべてのテーブルには、エンティティと、エンティティの Dao クラス、およびデータベースと通信するデータベース クラスがあります。

たとえば、Person、PersonDao、データベースなどです。

人は実体です。PersonDao は Database クラスを使用して、個人テーブルに対してのみデータベースにクエリを実行します。Database は、データベースの CRUD クラスです。

于 2016-12-16T13:15:16.443 に答える