我在数据访问层上工作,我使用数据映射器模式。我的实际代码结构例如是:
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)
...
}
我有很多类,它们对应于具有相同名称的数据库表。
我的问题是:
我的做法是对的吗?当我映射所有表时,我将在域层中使用它。
在Mapper类中,我使用的方法只适用于与这些类同名的表。 (Person
class - &gt; Persons db table,Order
class - &gt; Orders db table等。)但是从数据库中映射高级选择的最佳方法是什么,它将包含更多的连接表。例如,我想选择Person
所有Orders.
我应该为Person创建域模型,该模型将包含属性List<Orders>
并使用PersonMapper
和下一个OrderMapper
?
答案 0 :(得分:3)
请参阅DAO模式。
一般情况下:对于数据库中的每个表,您都有一个实体,实体的Dao类也是一个与数据库通信的数据库类。
例如Person,PersonDao,Database。
这个人就是实体。 PersonDao使用Database类仅查询person表的数据库。 数据库是数据库的CRUD类。