Kiến thức
Tìm hiểu Dapper Micro ORM và sử dụng trong ASP.NET Core Web API
1. Khái niệm về ORM
ORM (Object Relational Mapping) là một Framwork được xây dựng để liên kết các bảng trong database với các đối tượng trong ứng dụng. Có 2 cách tiếp cận ORM:
- Code First: Viết mã đối tượng trước, sinh database sau.
- Database First: Xây dựng database trước, sinh đối tượng sau từ database sau
2. Dapper là gì?
- Dapper là một Micro ORM là một thư viện xây dựng trên nền ADO.NET. Nói một cách khác Dapper là một thư viện mở rộng của ADO.NET (extend của lớp IDbConnection) tuy nhiên lại được bổ sung thêm các tính năng của ORM.
- Được phát triển bới các developer của StackExchange dưới dạng phần mềm mã nguồn mở.
- Nó được thiết kế để truy cập các cơ sở dữ liệu quan hệ sao cho có hiệu năng tốt nhất.
- Nó nhỏ gọn hơn nhiều so với Entity Framework nên gọi là Micro ORM.
3. Lý do nên dùng Dapper?
- Speed and fast in performance.
- Fewer lines of code.
- Object Mapper.
- Static Object Binding.
- Dynamic Object Binding.
- Easy Handling of SQL Query.
- Easy Handling of Stored Procedure.
- Operating directly to IDBConnection class that provides smoothness and running query directly to the database instead of passing data using various objects as we do in EF
- Multiple Query Support.
- Support for Stored Procedure.
- Bulk Data insert functionality.
- Dapper also allows fetching multiple data based on multiple inputs
So sánh hiệu năng Dapper với các Framework ORM khác
So sánh hiệu năng Dapper với Entity Framework Core
4. Các phương thức mở rộng trong Dapper
Dapper mở rộng từ giao diện IDbConnection với rất nhiều các phương thức:
- Execute – an extension method that we use to execute a command one or multiple times and return the number of affected rows
- Query – with this extension method we can execute a query and map the result
- QueryFirst – it executes a query and maps the first result
- QueryFirstOrDefault – we use this method to execute a query and map the first result, or a default value if the sequence contains no elements
- QuerySingle – an extension method that can execute a query and map the result. It throws an exception if there is not exactly one element in the sequence
- QuerySingleOrDefault – executes a query and maps the result, or a default value if the sequence is empty. It throws an exception if there is more than one element in the sequence
- QueryMultiple – an extension method that executes multiple queries within the same command and map results
Ngoài ra Dapper cũng cung cấp tất cả các phương thức bất động bộ tương ứng ((ExecuteAsync, QueryAsync, QueryFirstAsync, QueryFirstOrDefaultAsync, QuerySingleAsync, QuerySingleOrDefaultAsync, QueryMultipleAsync).
5. Demo sử dụng Dapper trong ASP.NET Core Web API
– Chuẩn bị cơ ở dữ liệu
– Tạo cấu trúc dự án
– Cài Dapper và các thư viện cần thiết
– Code các thành phần
Link download source code (Google Drive)
Video demo (đang quay)
thay lời cảm ơn!