NHibernate - ORM
Trước khi chúng ta thực sự có thể bắt đầu sử dụng NHibernate, chúng ta cần hiểu nền tảng mà nó được xây dựng. NHibernate là một công nghệ bền bỉ dựa trên ý tưởng về ánh xạ quan hệ đối tượng hoặc ORM.
ORM là gì?
Ánh xạ quan hệ đối tượng (ORM) là một programming techniqueđể chuyển đổi dữ liệu giữa các hệ thống kiểu không tương thích trong ngôn ngữ lập trình hướng đối tượng. Nói cách khác, nó là khái niệm ánh xạ các đối tượng nghiệp vụ của một ứng dụng tới các bảng cơ sở dữ liệu quan hệ, để dữ liệu có thể dễ dàng được truy cập và cập nhật hoàn toàn thông qua mô hình đối tượng của một ứng dụng.
Như bạn đã biết rằng cơ sở dữ liệu quan hệ cung cấp một phương tiện tốt để lưu trữ dữ liệu, trong khi lập trình hướng đối tượng là một cách tiếp cận tốt để xây dựng các ứng dụng phức tạp.
NHibernate và ORM nói chung có liên quan nhất đến các ứng dụng có logic nghiệp vụ tầm thường, mô hình miền và một số loại cơ sở dữ liệu.
Với ORM, rất dễ dàng để tạo một lớp dịch có thể dễ dàng chuyển đổi các đối tượng thành dữ liệu quan hệ và quay lại một lần nữa.
Từ viết tắt ORM cũng có thể có nghĩa là mô hình hóa vai trò đối tượng và thuật ngữ này được phát minh trước khi ánh xạ đối tượng / quan hệ trở nên phù hợp.
Nó mô tả một phương pháp để phân tích thông tin, được sử dụng trong mô hình cơ sở dữ liệu.
Tại sao ORM?
ORM là một framework cho phép bạn ánh xạ thế giới của các đối tượng được tìm thấy trong ngôn ngữ hướng đối tượng thành các hàng trong bảng quan hệ được tìm thấy trong cơ sở dữ liệu quan hệ
Để hiểu khái niệm này, chúng ta hãy xem sơ đồ sau.
Trong sơ đồ trên, bạn có thể thấy rằng chúng ta có một bảng được gọi là Nhân viên ở phía bên phải chứa các cột với mỗi phần dữ liệu được liên kết với một nhân viên riêng lẻ.
Chúng tôi có một cột cho một Id xác định duy nhất từng nhân viên.
Một cột cho tên của nhân viên, một cột khác cho ngày gia nhập của họ và cuối cùng là một cột có tuổi của một nhân viên.
Nếu chúng ta muốn viết một số mã để lưu trữ một nhân viên mới trong các bảng, thì điều đó không dễ dàng như vậy.
Trong sơ đồ trên, bạn cũng có thể thấy rằng chúng ta có một đối tượng nhân viên có các trường cho Id, tên, ngày tham gia và tuổi.
Nếu không có ORM, chúng ta phải dịch đối tượng này thành một vài câu lệnh SQL khác nhau sẽ chèn dữ liệu nhân viên vào bảng nhân viên.
Vì vậy, viết mã để tạo SQL để thực hiện tình huống trên không khó lắm, nhưng nó hơi tẻ nhạt và khá dễ sai.
Sử dụng ORM như NHibernate, chúng ta có thể khai báo cách một số lớp nhất định nên được ánh xạ tới các bảng quan hệ và để ORM hoặc NHibernate giải quyết công việc khó chịu là tạo SQL để chèn, cập nhật, xóa, trong dữ liệu truy vấn trong bảng nhân viên của chúng tôi.
Điều này cho phép chúng tôi giữ cho mã của mình tập trung vào việc sử dụng các đối tượng và để các đối tượng đó tự động được dịch sang các bảng quan hệ.
Vì vậy, thực sự những gì một ORM làm là nó giúp chúng ta không phải ánh xạ các đối tượng vào bảng theo cách thủ công.