数据访问层[C#]中映射数据库的设计模式

时间:2016-12-07 09:20:38

标签: c# design-patterns mapping data-access-layer business-layer

我在数据访问层上工作,我使用数据映射器模式。我的实际代码结构例如是:

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 class - &gt; Persons db table,Order class - &gt; Orders db table等。)但是从数据库中映射高级选择的最佳方法是什么,它将包含更多的连接表。例如,我想选择Person所有Orders.我应该为Person创建域模型,该模型将包含属性List<Orders>并使用PersonMapper和下一个OrderMapper

1 个答案:

答案 0 :(得分:3)

请参阅DAO模式。

一般情况下:对于数据库中的每个表,您都有一个实体,实体的Dao类也是一个与数据库通信的数据库类。

例如Person,PersonDao,Database。

这个人就是实体。 PersonDao使用Database类仅查询person表的数据库。 数据库是数据库的CRUD类。