Simplifying Data Access in .NET with Dapper



Dapper is a lightweight, open-source Object-Relational Mapping (ORM) library for .NET that simplifies data access and ensures your database queries are super fast. Unlike Entity Framework, which is a full-fledged ORM with a lot of overhead for simple tasks, Dapper provides a minimalist approach that allows you to execute SQL queries directly and map the results to your C# objects. It's the perfect tool for developers who need the speed of raw SQL with the convenience of an ORM. In this blog post, we'll explore how to use Dapper in a .NET application with a simple "Hello World" example.



Why Choose Dapper?

Dapper extends the IDbConnection interface, providing extension methods to execute queries directly on the database connection. Here are a few reasons why developers love using Dapper:

  • Performance: Dapper is designed for speed. It's faster than traditional ORMs for most operations.
  • Simplicity: It uses raw SQL, so there's no need to learn complex ORM syntax for queries.
  • Flexibility: You can easily map query results to complex nested objects or handle multiple result sets.
  • Lightweight: With minimal overhead, it's a great choice for applications where performance is key.

Getting Started with Dapper

Before we dive into the code, ensure you have the following prerequisites installed:

  • .NET SDK (Preferably .NET 6 or later)
  • A code editor like Visual Studio Code or Visual Studio
  • SQL Server or any relational database that supports ADO.NET

Step 1: Create a New .NET Console Application

Open your terminal or command prompt and run the following command to create a new console project:

dotnet new console -n DapperHelloWorld cd DapperHelloWorld

Step 2: Add Dapper to Your Project

Add Dapper to your project using the .NET CLI:

dotnet add package Dapper

Step 3: Set Up Your Database

For this example, let's assume you have a SQL Server database with a table named Users:

CREATE TABLE Users ( Id INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(50), Email NVARCHAR(50) );

Insert a sample record into your table:
INSERT INTO Users (Name, Email) VALUES ('John Doe', 'john.doe@example.com');



Step 4: Writing Your "Hello World" Dapper Code

Now, let's write some code to query our Users table using Dapper. Replace the content of your Program.cs file with the following code:

using System; using System.Data.SqlClient; using System.Linq; using Dapper; namespace DapperHelloWorld { class Program { static void Main(string[] args) { const string connectionString = "Your Connection String Here"; using var connection = new SqlConnection(connectionString); var users = connection.Query<User>("SELECT * FROM Users").ToList(); foreach (var user in users) { Console.WriteLine($"Name: {user.Name}, Email: {user.Email}"); } } } public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } } }

Make sure to replace "Your Connection String Here" with the actual connection string to your database.

Step 5: Run Your Application

Run your application using the .NET CLI:

dotnet run

You should see the name and email of the user(s) you've inserted into your Users table printed to the console.

Conclusion

Congratulations! You've just created a simple .NET application that uses Dapper to query a database. This "Hello World" example barely scratches the surface of what's possible with Dapper. As you delve deeper, you'll find that Dapper makes it easy to execute a wide range of SQL queries and commands, from simple CRUD operations to complex multi-mapping queries and transactions. Dapper is a powerful tool that combines the efficiency of raw SQL with the convenience of an ORM, making it a great choice for .NET developers who need speed and simplicity in their data access layer.

image
BLOG

PORTAL.BH v1.0

Copyright Ⓒ 2024