我在数据访问层工作,在那里我使用数据映射器模式。例如,我的实际代码结构是:
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)
...
}
我有很多类对应于同名的数据库表。
我的问题是:
我的方法对吗?当我映射所有表时,我将在域层中使用它。
在映射器类中,我使用的方法仅适用于与这些类同名的表。(
Person
类->人员数据库表,Order
类->订单数据库表等)但是,从数据库中映射高级选择的最佳方法是什么,该数据库将包含联接到更多表。例如,我想选择Person
和他的所有Orders.
我应该为Person创建域模型,该模型将包含属性List<Orders>
并使用PersonMapper
和下一个OrderMapper
?
参见 DAO 模式。
一般来说:对于数据库中的每个表,你都有一个实体和一个实体的 Dao 类,还有一个与数据库通信的数据库类。
例如 Person、PersonDao、Database。
人就是实体。 PersonDao使用数据库类来查询数据库,只查询人员表。 数据库是数据库的 CRUD 类。