Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengemas kini atau Memasukkan Baris dengan Cekap dalam Rangka Kerja Entiti?

Bagaimana Mengemas kini atau Memasukkan Baris dengan Cekap dalam Rangka Kerja Entiti?

Patricia Arquette
Patricia Arquetteasal
2025-01-06 18:28:45938semak imbas

How to Efficiently Update or Insert Rows in Entity Framework?

Kemas kini Baris jika Wujud, Lain Masukkan Logik dengan Rangka Kerja Entiti

Apabila bekerja dengan Rangka Kerja Entiti, terdapat cara yang cekap untuk melaksanakan logik untuk mengemas kini baris jika ia wujud atau memasukkan baris baharu.

Dilampirkan Objek

Jika berurusan dengan objek yang dilampirkan (objek yang dimuatkan daripada contoh konteks semasa), gunakan pendekatan berikut:

if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached)
{
    context.MyEntities.AddObject(myEntity);
}

context.SaveChanges();

Objek akan menjejaki perubahan secara automatik dan Panggilan SaveChanges() akan melakukan pengemaskinian atau operasi sisipan mengikut keperluan.

Objek Tidak Berlampirkan dengan Kunci Semak

Jika nilai kunci objek tersedia, anda boleh menggunakan kod ini:

if (myEntity.Id != 0)
{
    context.MyEntities.Attach(myEntity);
    context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified);
}
else
{
    context.MyEntities.AddObject(myEntity);
}

context.SaveChanges();

Pendekatan ini terlebih dahulu menyemak sama ada objek itu wujud menggunakan sifat Idnya. Jika ia berlaku, ia melampirkannya pada konteks dan menandakannya sebagai diubah suai. Jika tidak, objek baharu akan ditambah.

Objek Tidak Berlampirkan tanpa Pemeriksaan Kekunci

Apabila kewujudan objek tidak dapat ditentukan oleh kuncinya, gunakan pertanyaan carian :

var id = myEntity.Id;
if (context.MyEntities.Any(e => e.Id == id))
{
    context.MyEntities.Attach(myEntity);
    context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified);
}
else
{
    context.MyEntities.AddObject(myEntity);
}

context.SaveChanges();

Pendekatan ini mengambil baris yang sepadan dengan kunci objek daripada pangkalan data dan melaksanakan lampiran atau penambahan berdasarkan hasil pertanyaan.

Atas ialah kandungan terperinci Bagaimana Mengemas kini atau Memasukkan Baris dengan Cekap dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn