کار با پایگاه دادهها (Database) در #C
کار با پایگاه دادهها در #C
در #C میتوان از روشهای مختلفی برای کار با پایگاه دادهها استفاده کرد. مهمترین روشها شامل موارد زیر هستند:
- ADO.NET – روش سنتی برای کار با پایگاه دادهها از طریق SqlConnection و SqlCommand.
- Entity Framework (EF) – یک ORM که کار با دادهها را سادهتر میکند.
- Dapper – یک ORM سبک که سرعت بالا و کارایی خوبی دارد.
1. استفاده از ADO.NET برای کار با SQL Server
ADO.NET مجموعهای از کلاسها در System.Data.SqlClient است که به شما امکان اتصال و مدیریت دادهها را میدهد.
اتصال به پایگاه داده و اجرای دستورات
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Server=YOUR_SERVER;Database=YOUR_DB;User Id=YOUR_USER;Password=YOUR_PASSWORD;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("اتصال موفقیتآمیز بود!");
// اجرای یک کوئری ساده
string query = "SELECT COUNT(*) FROM Users";
SqlCommand command = new SqlCommand(query, connection);
int count = (int)command.ExecuteScalar();
Console.WriteLine($"تعداد کاربران: {count}");
}
catch (Exception ex)
{
Console.WriteLine("خطا در اتصال: " + ex.Message);
}
}
}
}
🔹 SqlConnection برای برقراری اتصال استفاده میشود.
🔹 SqlCommand برای اجرای دستورات SQL استفاده میشود.
🔹 ()ExecuteScalar مقدار منفردی را برمیگرداند.
2. کار با Entity Framework (EF)
Entity Framework یک ORM (Object Relational Mapper) است که تعامل با پایگاه داده را سادهتر میکند.
نصب EF Core
ابتدا با استفاده از NuGet Package Manager پکیج زیر را نصب کنید:
ایجاد مدل داده و DbContext
using System;
using System.Linq;
// تعریف مدل کاربر
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
// ایجاد کلاس DbContext
public class AppDbContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=YOUR_SERVER;Database=YOUR_DB;User Id=YOUR_USER;Password=YOUR_PASSWORD;");
}
}
// استفاده از EF برای اضافه کردن و خواندن داده
class Program
{
static void Main()
{
using (var context = new AppDbContext())
{
// افزودن کاربر جدید
var user = new User { Name = "علی", Email = "ali@example.com" };
context.Users.Add(user);
context.SaveChanges();
// خواندن کاربران از دیتابیس
var users = context.Users.ToList();
foreach (var u in users)
{
Console.WriteLine($"کاربر: {u.Name}, ایمیل: {u.Email}");
}
}
}
}
🔹 کلاس User مدل داده را تعریف میکند.
🔹 AppDbContext اتصال به دیتابیس را مدیریت میکند.
🔹 ()SaveChanges دادهها را ذخیره میکند.
🔹 ()ToList برای خواندن دادهها استفاده میشود.
3. استفاده از Dapper (ORM سبک و سریع)
Dapper یک ORM سبک است که عملکرد بسیار بهتری نسبت به Entity Framework دارد.
نصب Dapper
مثال استفاده از Dapper
using System.Data.SqlClient;
using Dapper;
using System.Collections.Generic;
class Program
{
static void Main()
{
string connectionString = "Server=YOUR_SERVER;Database=YOUR_DB;User Id=YOUR_USER;Password=YOUR_PASSWORD;";
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
// افزودن کاربر جدید
string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
connection.Execute(insertQuery, new { Name = "محمد", Email = "mohammad@example.com" });
// دریافت کاربران
string selectQuery = "SELECT * FROM Users";
IEnumerable<User> users = connection.Query<User>(selectQuery);
foreach (var user in users)
{
Console.WriteLine($"کاربر: {user.Name}, ایمیل: {user.Email}");
}
}
}
}
// مدل کاربر
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
🔹 ()connection.Execute برای اجرای کوئریهای INSERT, UPDATE, DELETE.
🔹()<connection.Query<T برای دریافت دادهها.
مقایسه روشها
روش | مزایا | معایب |
---|---|---|
ADO.NET | سریع، کنترل مستقیم بر دستورات SQL | پیچیدگی بالا، نیاز به مدیریت دستی اتصالات |
Entity Framework | توسعه سریع، کمتر نیاز به نوشتن کوئریها | کندتر از ADO.NET، مصرف حافظه بیشتر |
Dapper | سریع و سبک، ترکیب کنترل مستقیم و سادگی | نیاز به نوشتن کوئریهای دستی |
جمعبندی
برای کار با پایگاه دادهها در #C، بسته به نیاز پروژه، میتوان از ADO.NET، Entity Framework یا Dapper استفاده کرد. اگر سرعت بالا موردنیاز باشد، Dapper گزینه خوبی است. اگر مدیریت آسان دادهها اهمیت دارد، Entity Framework گزینه مناسبی خواهد بود.
