Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengemas kini atau Memasukkan Rekod dengan Cekap dalam Rangka Kerja Entiti?

Bagaimanakah Saya Boleh Mengemas kini atau Memasukkan Rekod dengan Cekap dalam Rangka Kerja Entiti?

Barbara Streisand
Lepaskan: 2025-01-06 18:37:44
asal
302 orang telah melayarinya

How Can I Efficiently Update or Insert Records in Entity Framework?

Menggunakan Rangka Kerja Entiti untuk Kemas Kini Sedia Ada atau Memasukkan Rekod Baharu

Apabila bekerja dengan pangkalan data, selalunya perlu memastikan kemas kini dilakukan pada baris sedia ada atau baris baharu disisipkan jika ia tidak wujud. Ini boleh dicapai melalui logik "kemas kini jika wujud, jika tidak masukkan baris baharu". Dalam Rangka Kerja Entiti (EF), terdapat beberapa pendekatan untuk melaksanakan logik ini dengan cekap.

1. Menggunakan Objek Terlampir

Untuk objek yang dilampirkan (objek yang dimuatkan daripada contoh konteks yang sama), kod boleh dipermudahkan kepada:

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

// Attached object tracks modifications automatically

context.SaveChanges();
Salin selepas log masuk

2. Menggunakan Pengetahuan ID Objek

Jika kunci objek diketahui (mis., ID), kod tersebut boleh menggunakan pernyataan IF:

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

3. Menggunakan Pertanyaan Carian

Dalam kes di mana kewujudan objek tidak dapat ditentukan daripada IDnya, pertanyaan carian boleh dilaksanakan:

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 menyediakan cara yang cekap untuk melaksanakan "kemas kini jika ia wujud, jika tidak, masukkan logik baris baharu menggunakan Rangka Kerja Entiti, memastikan pangkalan data dikemas kini atau rekod baharu ditambah sebagai diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini atau Memasukkan Rekod 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