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.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework