[DOTNETVN] Cài đặt Generic Repository and Unit of Work trong C#

Cùng nhau tìm hiểu và cài đặt the Generic Repository and Unit of Work trong C# wink

Khi làm dự án với Entity Framework thì đa số chúng ta sẽ lựa chọn apply Repository và Unit of Work Pattern trong thiết kế kiến trúc để làm tầng trung gian cho việc giao tiếp xử lý dữ liệu giữa Business và DataAccess. Hôm nay mình sẽ cũng áp dụng pattern này nhưng sẽ sử dụng một thứ rất hay ho và rất mạnh mà C# mang lại cho tín đồ .NET của chúng ta đó là Generic Type.

Đầu tiên chúng ta sẽ khái quát 1 tí về Generic nhé.

Generic là gì ?

Generic là một feature cũng như là một vũ khí mạnh mẽ mà C# đã mang đến cho anh em tín đồ .NET chúng ta. Genertic được ra đời từ C# 2.0 là một trong nhưng thành phần cấu tạo nên LINQ C#, cho phép chúng ta định nghĩa một kiểu dữ liệu hoặc lớp mà không cần quan tâm đến kiểu dữ liệu chính xác của nó là gì, nói nôm na thì cho phép chúng ta định nghĩa một data structure dùng chung, chính điều này đã nâng cấp sức mạnh đáng kể cho C# trong việc kế thừa cũng như mở rộng các tính năng một cách dễ dàng và tối ưu nhất.

Để thấy rõ hơn thì chúng ta xem qua ví dụ này nhé:

class MyList<T>
{
    List<T> _data;
    public MyList()
    {
        _data = new List<T>();
    }
    
    public void Add(T item)
    {
        _data.Add(item);
    }
}

Ở đây T chính là Generic Type của chúng ta, các bạn có thể sử dụng kiểu string, int,... hoặc một class cho đối tượng MyList này. Ví dụ như mình sẽ tạo 1 class tên là "Student" chẳng hạn và khi mình khai báo là MyList<Student> lúc này mình sẽ có 1 list student.

Tham khảo thêm tại đây nhé : https://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx

OK giờ chúng ta đi đến vấn đề chính của bài viết này nhé smiley

Source Code: https://github.com/dotnetvn-projects/GenericReposAndUnitOfWork

Document kèm: https://github.com/dotnetvn-projects/GenericReposAndUnitOfWork/blob/master/Document.pptx

Thông tin bài viết