Entity Framework - تعديل البيانات (Update)
Entity Framework Core - تعديل البيانات (Update)
تعديل السجلات في قاعدة البيانات باستخدام EF Core يتم بسهولة عن طريق تعديل الكائنات المرتبطة بالـ DbContext ثم حفظ التغييرات.
---🔹 الخطوات الأساسية لتعديل البيانات:
- 1️⃣ جلب السجل الذي ترغب بتعديله من قاعدة البيانات.
- 2️⃣ تعديل الخصائص المطلوبة للكائن.
- 3️⃣ استدعاء
SaveChangesAsync
لحفظ التغييرات.
🔹 مثال عملي على تعديل طالب:
// ملف Pages/EditStudent.razor
@page "/editstudent/{Id:int}"
@inject ApplicationDbContext db
@inject NavigationManager Navigation
<h3>تعديل بيانات الطالب</h3>
@if (student == null)
{
<p>جاري التحميل...</p>
}
else
{
<EditForm Model="@student" OnValidSubmit="UpdateStudent">
<DataAnnotationsValidator />
<ValidationSummary />
<div>
<label>اسم الطالب:</label>
<InputText @bind-Value="student.Name" class="form-control" />
</div>
<div>
<label>العمر:</label>
<InputNumber @bind-Value="student.Age" class="form-control" />
</div>
<div>
<label>البريد الإلكتروني:</label>
<InputText @bind-Value="student.Email" class="form-control" />
</div>
<br />
<button type="submit" class="btn btn-warning">تحديث</button>
</EditForm>
}
@code {
[Parameter]
public int Id { get; set; }
private Student student;
protected override async Task OnInitializedAsync()
{
student = await db.Students.FindAsync(Id);
}
private async Task UpdateStudent()
{
db.Students.Update(student);
await db.SaveChangesAsync();
Navigation.NavigateTo("/studentslist");
}
}
---
🔹 شرح الكود:
- FindAsync يتم استخدامه لجلب السجل حسب الـ Id.
- بعد تعديل الخصائص، نستخدم
Update
لتعريف الكائن بأنه قد تم تعديله. - استدعاء
SaveChangesAsync
يقوم بحفظ التعديلات فعليًا داخل القاعدة. - بعد التحديث الناجح، يتم إعادة توجيه المستخدم إلى قائمة الطلاب باستخدام
NavigationManager
.
🔹 ملاحظة مهمة:
✅ إذا كنت تعمل مع كائنات تتبعها EF Core مسبقًا (Tracked Entities)، يمكنك تعديل الخصائص مباشرة بدون الحاجة إلى استدعاء Update
.
تعليقات
إرسال تعليق