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
Lepaskan: 2025-01-06 18:28:45
asal
940 orang telah melayarinya

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan