IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Dapper C# (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 19 Temmuz 2026

Modern yazılım geliştirmede, veritabanlarına verimli bir şekilde erişmek uygulama performansı ve ölçeklenebilirliği için hayati öneme sahiptir. Dapper, .NET için hafif bir Nesne-İlişkisel Haritalayıcı (ORM), veritabanı etkileşimi için basit bir yaklaşım sunar. Bu makalede, SQLite veritabanı dosyası ile Dapper C# kullanmayı keşfedeceğiz ve kod örnekleriyle basitliğini ve etkinliğini göstereceğiz. Ayrıca, Iron Softwareın IronPDF adlı olağanüstü PDF oluşturma kütüphanesini tanıtacağım.

Dapper Nedir?

Dapper, .NET platformu için bir nesne-ilişkisel haritalama (ORM) çerçevesidir. Nesneye yönelik bir alan modelini geleneksel bir ilişkisel veri tabanına haritalamayı sağlayan basit bir nesne haritalayıcıdır. Dapper hızı ve performansı ile bilinir, genellikle 'Mikro ORM'nin Kralı' olarak anılır. Dapper, bir raw ADO.NET veri okuyucusunun hızına eşleşir ve IDbConnection arayüzünü SQL veritabanlarına sorgu yapmak için yararlı genişletme yöntemleri ile geliştirir.

Dapper'ın Kilit Özellikleri

  1. Performans: Dapper, hafif tasarımı ve verimli nesne haritalama nedeniyle mükemmel performansıyla tanınır.
  2. Basitlik: Dapper'ın API'si minimalist ve sezgiseldir, bu da onu geliştiricilerin öğrenmesi ve etkili bir şekilde kullanması için kolay hale getirir.
  3. Ham SQL Desteği: Dapper, geliştiricilerin ham SQL sorguları yazmasına izin verir, veri tabanı etkileşimleri üzerinde tam kontrol sağlar.
  4. Nesne Haritalama: Dapper, sorgu sonuçlarını doğrudan C# nesnelerine mapler, boilerplate kodunu azaltır ve kod okunabilirliğini artırır.
  5. Parametreli Sorgular: Dapper, SQL enjeksiyonu saldırılarına karşı koruma sağlarken ve performansı artırırken, parametreli sorguları destekler.
  6. Çoklu Mapping: Dapper birden fazla sorgunun verimli bir şekilde yürütülmesine izin vererek bire çok ve çoke çok ilişkileri sorunsuz bir şekilde işler, bu sayede karmaşık veri alımını basitleştirir.

Dapper ile Asenkron Veri Erişimi

Dapper, asenkron uzantı yöntemleri sunar ve geliştiricilerin veri tabanı sorgularını asenkron olarak çalıştırmasına olanak tanır. Bu asenkron yöntemler, veri tabanı sorguları gibi I/O tabanlı işlemler için idealdir; ana iş parçacığı veri tabanı işleminin tamamlanmasını beklerken başka görevleri yürütmeye devam edebilir.

Dapper'daki Anahtar Asenkron Yöntemler

  1. QueryAsync: SQL sorgusunu eşzamanlı olarak yürütür ve sonucu dinamik nesneler veya güçlü türde nesneler dizisi olarak döndürür.
  2. QueryFirstOrDefaultAsync: SQL sorgusunu eşzamanlı olarak yürütür ve ilk sonucu veya sonuç bulunamazsa varsayılan bir değeri döndürür.
  3. ExecuteAsync: SQL komutunu eşzamanlı olarak yürütür (örneğin, INSERT, UPDATE, DELETE) ve etkilenen satır sayısını döndürür.

Ortamı Kurma: Kod örneklerine geçmeden önce, gerekli araçları yüklediğinizden emin olun:

  1. Visual Studio veya Visual Studio Code.
  2. .NET SDK.
  3. .NET için SQLite paketi.

SQLite paketini yüklemek için proje dizininizde şu komutu çalıştırın:

dotnet add package Microsoft.Data.Sqlite
SHELL

Bir SQLite Veritabanı Oluşturma: Gösterim amaçlı olmak üzere, 'example.db' adında basit bir SQLite veritabanı dosyası oluşturalım ve 'Id,' 'Name,' ve 'Email' sütunları içeren bir 'Users' tablosu oluşturalım.

CREATE TABLE Users (
    Id INTEGER PRIMARY KEY,
    Name TEXT,
    Email TEXT
);
Text

Dapper ile SQLite Kullanımı

  1. Öncelikle, gerekli ad alanlarının içeri aktarıldığından emin olun:
using Microsoft.Data.Sqlite;
using Dapper;
  1. SQLite veri tabanına bir bağlantı kurun:

    string connectionString = "Data Source=example.db"; // SQLite database connection string
    using (var connection = new SqliteConnection(connectionString))
    {
        connection.Open();
        // Your Dapper queries will go here
    }
  2. Dapper ile bir sorgu çalıştırın:

    // Define a class to represent the structure of a user
    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
    }
    
    // Query to select all users
    string query = "SELECT * FROM Users"; // SQL query
    var users = connection.Query<User>(query).ToList();
    
    // Display the results
    foreach (var user in users)
    {
        Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Email: {user.Email}");
    }
  3. Dapper kullanarak veri tabanına veri ekleyin:

    // Define a new user 
    var newUser = new User { Name = "John Doe", Email = "john@example.com" };
    
    // SQL query/stored procedure to insert a new user
    string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
    
    // Execute the query
    connection.Execute(insertQuery, newUser);

IronPDF Tanıtımı

IronPDF, geliştiricilerin .NET uygulamaları içinde PDF belgeleri programatik olarak oluşturmasına, düzenlemesine ve üzerinde işlem yapmasına olanak tanıyan Iron Software tarafından sağlanan bir C# kütüphanesidir. HTML, resimler ve diğer formatlardan PDF belgeleri oluşturma, varolan PDF dosyalarına metin, resimler ve çeşitli elemanlar ekleme gibi özellikler sunar. IronPDF, .NET geliştiricileri için PDF oluşturma ve manipülasyon görevlerini basitleştirmeyi hedefler ve kapsamlı bir araç ve API seti sağlar.

IronPDF, .NET uygulamaları içinde PDF oluşturma ve manipülasyonu için bir dizi özellik sunar:

  1. HTML'den PDF'ye Dönüşüm: CSS stillerini içeren HTML içeriğini PDF belgelerine dönüştürün.
  2. Resimden PDF'ye Dönüşüm: JPEG, PNG, BMP gibi resimleri PDF belgelerine dönüştürün.
  3. Metinden PDF'ye Dönüşüm: Düz veya biçimlendirilmiş metni (RTF) PDF belgelerine dönüştürün.
  4. PDF Oluşturma: Programatik olarak sıfırdan PDF belgeleri oluşturun.
  5. PDF Düzenleme: Mevcut PDF belgelerine metin, resim ve diğer elemanlar ekleyerek düzenleyin veya değiştirin.
  6. PDF Birleştirme ve Bölme: Birden fazla PDF belgelerini tek bir belgede birleştirin veya bir PDF belgesini birden fazla dosyaya bölün.
  7. PDF Güvenliği: PDF belgelerine parola koruması ve şifreleme uygulayarak erişimi sınırlayın ve hassas bilgileri koruyun.
  8. PDF Form Doldurma: PDF formlarını programatik olarak verilerle doldurun.
  9. PDF Baskı: .NET uygulamanızdan doğrudan PDF belgeleri yazdırın.
  10. PDF Dönüşüm Ayarları: PDF oluşturma sırasında sayfa boyutu, yönlendirme, kenar boşlukları, sıkıştırma gibi çeşitli ayarları özelleştirin.
  11. PDF Metin Çıkarma: PDF belgelerinden metin içeriğini çıkararak daha fazla işlem veya analiz için kullanın.
  12. PDF Meta Verileri: PDF belgeleri için yazar, başlık, konu, anahtar kelimeler gibi meta verileri ayarlayın.

Dapper ve IronPDF ile PDF Belgeleri Oluşturma

Visual Studio'da bir konsol uygulaması oluşturun

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Visual Studio'da bir konsol uygulaması oluşturma

Proje adını ve konumunu sağlayın

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Projeyi adlandırma

.NET sürümünü seçin

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - İstenen .NET sürümünü seçme

Aşağıdaki paketleri Visual Studio Paket Yöneticisi veya konsoldan yükleyin

dotnet add package Microsoft.Data.Sqlite
SHELL

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - Visual Studio Paket Yöneticisi'nden Microsoft Data Sqlite yükleme

dotnet add package Dapper --version 2.1.35
SHELL

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - Visual Studio Paket Yöneticisi'nden Dapper yükleme

dotnet add package IronPdf --version 2024.4.2

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - Visual Studio Paket Yöneticisi'nden IronPDF yükleme

Bir PDF belgesi oluşturmak için aşağıdaki kodu kullanın:

using Dapper; // Import Dapper for ORM functionalities
using IronPdf; // Import IronPDF for PDF generation
using Microsoft.Data.Sqlite; // Import Sqlite for database connection

// Define the connection string for SQLite database
string connectionString = "Data Source=ironPdf.db";

// Create a string to hold the content for the PDF document
var content = "<h1>Demonstrate IronPDF with Dapper</h1>";

// Add HTML content
content += "<h2>Create a new database using Microsoft.Data.Sqlite</h2>";
content += "<p>new SqliteConnection(connectionString) and connection.Open()</p>";

// Open the database connection
using (var connection = new SqliteConnection(connectionString))
{
    connection.Open();
    
    // Create a Users Table using Dapper
    content += "<h2>Create a Users Table using Dapper and SQL insert query</h2>";
    content += "<p>CREATE TABLE IF NOT EXISTS Users</p>";
    
    // SQL statement to create a Users table
    string sql = "CREATE TABLE IF NOT EXISTS Users (\n    Id INTEGER PRIMARY KEY,\n    Name TEXT,\n    Email TEXT\n);";
    connection.Execute(sql);
    
    // Add Users to table using Dapper
    content += "<h2>Add Users to table using Dapper</h2>";
    content += AddUser(connection, new User { Name = "John Doe", Email = "john@example.com" });
    content += AddUser(connection, new User { Name = "Smith William", Email = "Smith@example.com" });
    content += AddUser(connection, new User { Name = "Rock Bill", Email = "Rock@example.com" });
    content += AddUser(connection, new User { Name = "Jack Sparrow", Email = "Jack@example.com" });
    content += AddUser(connection, new User { Name = "Tomus Tibe", Email = "Tomus@example.com" });
    
    // Retrieve and display users from database
    content += "<h2>Get Users From table using Dapper</h2>";
    string query = "SELECT * FROM Users";
    var users = connection.Query<User>(query).ToList();
    
    // Display each user detail retrieved from the database
    foreach (var user in users)
    {
        content += $"<p>Id:{user.Id}, Name:{user.Name}, email: {user.Email}</p>";
        Console.WriteLine($"{user.Id}. User Name:{user.Name}, Email:{user.Email}");
    }
    
    // Create PDF from the accumulated HTML content
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(content);
    
    // Save the PDF to a file
    pdf.SaveAs("dapper.pdf");
}

// Method to add user to the database and accumulate HTML content
string AddUser(SqliteConnection sqliteConnection, User user)
{
    string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
    sqliteConnection.Execute(insertQuery, user);
    return $"<p>Name:{user.Name}, email: {user.Email}</p>"; 
}

Kod Açıklaması

  1. PDF oluşturma için bir dize içerik tutucu ile başlayın.
  2. Yeni bir veritabanı oluşturun, Microsoft.Data.Sqlite kullanarak, connection.Open() boş bir veritabanı oluşturur.
  3. Dapper kullanarak bir Users Tablosu oluşturun ve ekleme için SQL sorgularını yürütün.
  4. Eklemek için Dapper ile kullanıcıları tabloya ekleyin.
  5. Veri tabanından tüm kullanıcıları seçmek için sorgu yapın.
  6. IronPDF tarafından sağlanan ChromePdfRenderer ve SaveAs yöntemlerini kullanarak oluşturulan içeriği PDF olarak kaydedin.

Çıktı

Dapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - Yukarıda kurulan tüm paketleri kullanarak oluşturulan örnek PDF çıktısı

Lisans (IronPDF için Deneme Mevcuttur)

IronPDF'in lisanslama bilgileri projenizde uyumluluk ve kullanım sağlamak için mevcuttur.

Bir deneme lisansı, IronPDF deneme lisans sayfası aracılığıyla alınabilir.

Lütfen aşağıda gösterilen appSettings.json dosyasındaki Anahtarı değiştirin:

{
  "IronPdf.License.LicenseKey" : "The Key Goes Here"
}
JSON

Sonuç

Dapper, .NET uygulamalarında veri erişimini basitleştirir ve SQLite ile birleştirildiğinde veri tabanlarını yönetmek için hafif ve etkili bir çözüm sunar. Bu makalede açıklanan adımları takip ederek, SQLite veri tabanlarıyla sorunsuz bir şekilde etkileşim kurmak için Dapper'i kullanabilir, bu sayede sağlam ve ölçeklenebilir uygulamaları kolaylıkla oluşturabilirsiniz. İronPDF ile birlikte, geliştiriciler Dapper gibi ORM veritabanları ve IronPDF gibi PDF oluşturma kütüphaneleri ile ilgili beceriler kazanabilir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez