Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 30236|Jawab: 1

[Sumber] EF mengatur Id kunci utama ke jenis guid yang tumbuh sendiri

[Salin tautan]
Diposting pada 04/11/2016 13.27.38 | | | |


Kode entitas entitas adalah sebagai berikut:



Kode sisipkan adalah sebagai berikut:



Kita hanya mengatur nilai nama dan tidak menetapkan nilai ke id, mari kita lihat apa pernyataan sql yang dihasilkan??? , sebagai berikut:

exec sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier)
MASUKKAN [dbo]. [Tab Tes] ([Nama])
OUTPUT dimasukkan. [Id] KE @generated_keys
NILAI (@0)
PILIH t.[Id]
DARI @generated_keys AS g JOIN [dbo]. [Tab Tes] AS t ON g.[Id] = t.[Id]
DI MANA @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' arsitekwww.itsvse.com'


Kami menemukan bahwa tabel INSERT TestTab hanya menyisipkan bidang Name, apakah Id memiliki nilai default??? Kami menemukan bahwa

ef telah membantu saya mengatur jenis nilai default dari kunci primer Id, nilai default atau pengikatan "(newsequentialid())", dan menggunakan fungsi newsequentialid(), yang diperkenalkan sebagai berikut:


1.:Keuntungan terbesar dari fungsi newsequentialid dibandingkan fungsi newid adalah bahwa jika Anda membuat indeks pada bidang UNIQUEIDENTIFIER, nilai baru yang dihasilkan menggunakan newid tidak tetap, sehingga nilai baru menyebabkan perubahan pada pohon indeks B+ menjadi acak. Jika nilai baru yang dihasilkan oleh newsequentialid adalah reguler, maka perubahan pohon indeks B+ adalah reguler. Keteraturan dan ketidakteraturan mengarah pada peningkatan kinerja.

2: UNIQUEIDENTIFIER adalah hal yang sangat nyaman untuk dilakukan sebagai kunci utama, yang memiliki keunggulan tak tergantikan dalam operasi seperti penggabungan data
Namun, karena desentralisasi GUID biasa, jika kunci utama ditambahkan ke indeks berkluster, itu akan jauh lebih efisien saat menyisipkan catatan

SQL SERVER 2005 menambahkan fungsi baru yang disebut NEWSEQUENTIALID, yang dijelaskan MSDN:
Buat GUID pada komputer yang ditentukan yang lebih besar dari GUID apa pun yang sebelumnya dihasilkan oleh fungsi.
NEWSEQUENTIALID() tidak dapat direferensikan dalam kueri.
Catatan: Ini berarti bahwa itu hanya dapat digunakan sebagai DEFAULT VALUE dari kolom database, dan tidak dapat mengeksekusi pernyataan seperti SELECT NEWSEQUENTIALID().
GUID yang dihasilkan oleh NEWSEQUENTIALID() unik di komputer tertentu hanya jika komputer tidak memiliki kartu jaringan.
Catatan: Kalimat ini salah, seharusnya hanya ketika komputer memiliki kartu jaringan, GUID yang dihasilkan unik di dunia
Anda dapat menggunakan NEWSEQUENTIALID() untuk menghasilkan GUID guna mengurangi pertentangan halaman pada indeks tingkat daun.





Mantan:EasyUI Control Tab menambahkan fungsi sakelar
Depan:c#/.Net collection array layer by layer value
Diposting pada 01/02/2018 10.43.26 |
Ya, terima kasih! Keterampilan tuan tanah sangat sulit! Keras
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com