Blazor - الاتصال بقاعدة بيانات عبر Entity Framework Core
Blazor Server - الاتصال بقاعدة بيانات عبر Entity Framework Core
للاتصال بقاعدة بيانات SQL Server (أو أي قاعدة بيانات أخرى)، نستخدم مكتبة Entity Framework Core داخل Blazor Server بكل سهولة وكفاءة.
🔹 الخطوات الأساسية لإعداد الاتصال:
- 1️⃣ إنشاء كلاس DbContext.
- 2️⃣ إنشاء موديل (Model) يمثل الجدول.
- 3️⃣ تسجيل DbContext في خدمة Dependency Injection.
- 4️⃣ استخدام DbContext داخل المكونات أو الخدمات.
🔹 مثال عملي متكامل:
سننشئ قاعدة بيانات بسيطة لإدارة الطلاب (Students).
1️⃣ إنشاء موديل Student:
// ملف Models/Student.cs
public class Student
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
---
2️⃣ إنشاء DbContext:
// ملف Data/ApplicationDbContext.cs
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Student> Students { get; set; }
}
---
3️⃣ تسجيل DbContext في Program.cs:
// ملف Program.cs
var builder = WebApplication.CreateBuilder(args);
// تسجيل DbContext
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
var app = builder.Build();
// الإعدادات المعتادة
app.UseRouting();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();
---
4️⃣ إضافة الاتصال داخل appsettings.json:
// ملف appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=StudentDb;Trusted_Connection=True;"
}
}
---
5️⃣ استخدام DbContext داخل مكون Blazor:
// ملف Pages/StudentsList.razor
@page "/students"
@inject ApplicationDbContext db
<h3>قائمة الطلاب</h3>
@if (students == null)
{
<p>جاري التحميل...</p>
}
else
{
<ul>
@foreach (var student in students)
{
<li>@student.Name</li>
}
</ul>
}
@code {
private List<Student> students;
protected override async Task OnInitializedAsync()
{
students = await db.Students.ToListAsync();
}
}
---
🔹 ملاحظات إضافية:
- يمكنك استخدام Migrations لإنشاء القاعدة والجداول تلقائيًا من الكود (Code-First Approach).
- يمكنك الاستفادة من مبدأ Dependency Injection لإدارة DbContext بطريقة احترافية.
- EF Core يدعم Lazy Loading, Eager Loading وExplicit Loading.
✅ بفضل EF Core مع Blazor Server، تستطيع التعامل مع قواعد البيانات بسهولة وكفاءة عالية، وكأنك تتعامل مع كائنات C# عادية!
تعليقات
إرسال تعليق