Reputation: 5291
I work on my Data Access Layer where I use data mapper pattern. My actual structure of code is for example:
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)
...
}
I have so many classes which are corresponding for database table with same name.
My questions are:
Is my approach right? When I mapped all tables, I will use it in the domain layer.
In Mapper classes I use methods which are working only with tables which are same name as these classes. (Person
class -> Persons db table, Order
class -> Orders db table, etc.) But what is the best way to map advanced selects from database, which will be contains joins to more tables. For example I want select Person
with all his Orders.
Should I create domain model for Person which will be contains property List<Orders>
and use PersonMapper
and next OrderMapper
?
Upvotes: -1
Views: 1371
Reputation: 3960
See the DAO Pattern.
In general: For every table in your db you have an entity and a Dao class for the entity also a database class which communicates with the database.
For example Person, PersonDao, Database.
The person is the entity. PersonDao uses Database class to query database only for person table. Database is a CRUD class for the database.
Upvotes: 3