Design and Implement Repository and Unit of Work Patterns