Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 27075|Yanıt: 0

[Kaynak] EF Core Serisi 2, OnModelCreating'i kapsüller, yansımalar kullanarak indeksler oluşturur ve daha fazlasını içerir

[Bağlantıyı kopyala]
2020-9-22 10:57:19 tarihinde yayınlandı | | | |
İndeksleme, birden fazla veri deposunda yaygın bir kavramdır. Veri deposunda uygulanmaları değişkenlik gösterse de, sütun tabanlı sorgulamalar (veya bir sütun kümesi) için de daha verimli hale getirilebilirler.

Bağlantı girişi görünür.

Bilmeniz gerekenler:

.net/c#, yansıtma dinamik yürütme yönteminden faydalanır
https://www.itsvse.com/thread-4771-1-1.html

C# yansıması, nesne özelliğinin gösterim adını alır
https://www.itsvse.com/thread-3219-1-1.html

Entity Framework 6'da, alanlara öznitelik ekleyerek indeks ekleyebilirsiniz, ancak ef core'da öznitelikleri tablo alanlarına indeks eklemek için kullanamazsınız, bu yüzden OnModelCreating yöntemini yeniden yazmalı ve ilgili kuralları teker teker yazmalısınız.

Bu yöntemle farklı tablolar yazılmalıdır; bu yöntem kolay sürdürülmez ve okunabilirliği çok zayıftır, bu yüzden güncellemeleri ve aramaları kolaylaştırmak için her tablonun indeksini kendi yöntemimizle yazıyoruz.

EF Core kullanılırCode FristŞema bir tablo yapısı oluşturur.

Öncelikle, yeni bir IOnModelCreate arayüzü oluşturun, kod şu şekildedir:

Farklı tabloların sınıf sınıfının en altına bir nesne tanımlarız ve arayüzü devralırız, örneğin:

Hesap Ayarlama Kodu:
EmailSentHistorySetting kodu:

Kendi DbContext bağlam nesnetinizde, OnModelCreating yöntemini yeniden yazın, yansıtma yöntemini kullanın ve OnModelCreating yöntemini çalıştırarak indeksler, ilişkiler, veri tohumlama vb. oluşturun.

OnModelCreating yöntemi şöyledir:



Aşağıdaki kodu oluşturmak için Create Migration komutunu çalıştırın:



Keşif, indeksler yansıma yöntemleriyle başarıyla oluşturulabilir, vb.

(Son)





Önceki:.NET Core, Redis tabanlı dağıtık kilit prensip ayrıştırmasını uygular
Önümüzdeki:ASP.NET Core (1) Redis önbellekleme kullanır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com