DAPPER LÀ GÌ

  -  

Đối với những xây dựng viên .Net thì chắc hẳn rằng là sẽ thừa rất gần gũi cùng với các tlỗi viện thao tác làm việc với MS SQL SERVER như thể ADO.NET hoặc Entity Framwork.

Bạn đang xem: Dapper là gì

Cùng điểm lại một vài nét khác biệt giữa 2 tính năng này.

ADO.NET: Để access đên database ta phải áp dụng dataphối, datatable, datareader, datatables, command, và connection objects.Sử dụng Squốc lộ queries hoặc store procedure để thao tác với tài liệu.

Entity Framwork: Là một object relational mapping, áp dụng LinQ nhằm access mang đến database với query SQL sẽ được tự động hóa hiện ra theo LinQ query.

Sự khác nhau cơ phiên bản độc nhất vô nhị bao gồm là:

ADO.NET làm việc bằng các SQL Queries vày vậy rất có thể thuận lợi sửa đổi, tunning câu sql theo ý thích nhằm nâng cấp performance.Tuy nhiên data trả về của ADO.NET là DataTable Hay là DataReader, để convert thành những object mã sản phẩm thì nên cần phảicó thêm một lớp helper trung gian.

Entity framework thao tác làm việc với Database trải qua LINQ. LinQ queries vẫn auto biên dịch thành những câu Squốc lộ Squery. Vì vậy bài toán sửa đổi cũng tương tự sửa đổi trực tiếp Squốc lộ là khó khăn đối với ADO.NET. Tuy nhiên bởi vì là ORM phải tài liệu trả về đã từ mộngmapping vào những entity object.

Xem thêm: Ý Nghĩa Của 10 Hoa Tay Lí Giải Đường Tình Duyên Trắc Trở!, Người Có 10 Hoa Tay Có Gì Đặc Biệt

Qua đối chiếu sống trên có thể thấy đạt điểm lợi và sợ. ADO.NET đến performance nkhô nóng rộng. Dễ dàng sửa đổi Squốc lộ query mặc dù lại mất thời hạn để mapping, convert tài liệu trả về.Entity framework auto mapping dữ liệu tuy nhiên sửa đổi, tunning sql nâng cao performace thì lại trở ngại rộng.

Vậy làm bí quyết như thế nào để có thể vừa thao tác làm việc với Database bởi các câu sql queries thẳng vừa hoàn toàn có thể auto mapping. Câu vấn đáp chính là Dapper ORM

Dapper là gì ?

Dapper là một trong Object Relational Mapper, nó là một tlỗi viện thi công trên nền ADO.NET data reader. Nói một cách khác Dapper là một trong tlỗi viện không ngừng mở rộng của ADO.NET (extover của lớp IDbConnection) tuy vậy lại được bổ sung cập nhật thêm những bản lĩnh của ORM.

lúc thực hiện ADO.NET nhằm để convert datareader thành một object mã sản phẩm bọn họ hay thực hiện các delegate nhằm làm việc. Dapper đã thành lập các method library nhằm tự động hóa tiến hành những bài toán này đến bọn họ thông qua các lớp metadata.

Dapper thao tác như thế nào:

Gồm 3 bước (Về cơ bạn dạng Khi thao tác làm việc với Dapper nó đã trọn vẹn giống như với mọi có mang ở ADO.NET )

1/ Khởi tạo thành một IDbConnection object cùng với tmê mẩn số là một trong connection String 2/ Viết Squốc lộ query triển khai những làm việc CRUD 3/Truyền SQL quergiống hệt như là 1 trong những tsay mê số vào method của dapper, (Exedễ thương, Query)Một số Dapper Features

Dapper - Execute

Thực thị câu lệnh 1 hoặc thể những lần.Giá trị trả về là affected rows Lúc exeđáng yêu thành công xuất sắc.Các câu lệnh hoàn toàn có thể truyền vào Method Exedễ thương nlỗi dưới :

Stored Procedure INSERT statement UPDATE statement DELETE statement Dapper - Query

Thực thi 1 câu lệnh Select cùng Mapping hiệu quả trả về cùng với objectGiống nlỗi Entity Framework Dapper cung ứng các hàm sau nhằm xúc tiến truy nã vấn

QueryFirstQueryFirstOrDefaultQuerySingleQuerySingleOrDefaultQueryMultipleDapper - Parameters

Để truyền parameter mang đến Squốc lộ Queries. Dapper sử dụng 4 giải pháp sau

Anonymous : Anonymous object Dynamic: cần sử dụng DynamicParameters. tương tự Squốc lộ Parameter của ADO.NET List: Truyền vào 1 mảng những cực hiếm. Dùng mang lại Select với IN String: Dùng DbString để truyền vào dạng text.Đầu vào param của Dapper type là object đề xuất ngoài bài toán truyền vào 1 strong type rõ ràng bạn cũng có thể truyền và 1 anonymous objectVấn đề này tương đối là thuận với nhanh lẹ Lúc pass params nhưng mà không cần thiết phải tạo nên 1 object type rõ ràng.

Xem thêm: Cách Xóa Xác Minh Tài Khoản, Xác Minh 2 Bước Cho Tài Khoản Gmail, Google

Dapper - Result

Dapper đã trả về những dạng hình tài liệu nhỏng bên dưới

Anonymous: Nếu không luật (xay kiểu) về 1 object cụ thể làm sao. Dapper đang trả về 1 anonymous object Strongly Typed: Chỉ định object rất cần phải mapping. Dữ liệu trả về đã tự động hóa mapping vào object Multi-Mapping: Sử dụng nhằm mapping kết quả trả với cùng với những object model gồm relation ship Multi-Result: Dapper cung ứng Việc chạy các select queries thuộc 1 câu lệnh. Sử dụng Read nhằm bóc tách bóc dữ liệu đến từng object Multi-Type: Dapper cung cấp hướng đẫn object Mã Sản Phẩm như thế nào sẽ được mapping với công dụng. một số ví dụ :

string sql = "INSERT INTO Customers (CustomerName) Values (
CustomerName);";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools())){connection.Open();var affectedRows = connection.Execute(sql,new<>new CustomerName = "John",new CustomerName = "Andy",new CustomerName = "Allan");Console.WriteLine(affectedRows);string sql = "SELECT TOPhường. 10 * FROM OrderDetails";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))var orderDetails = connection.Query(sql).ToList();Console.WriteLine(orderDetails.Count);FiddleHelper.WriteTable(orderDetails); Ngoài các tính năng làm việc bên trên Dapper thành lập thêm 1 thực viện không giống là Dapper PlusThư viện này kiến thiết kha khá giống như cùng với bí quyết mà lại entity framework làm việc.Thêm vào đó Dapper cung cấp các method Async. Giúp phát triển những công tác bất đồng hóa một cách dễ ợt.