blog post sayfamı StoreGeneratedPattern
numaralı telefondan kontrol edin. Identity
ve Computed
arasındaki bazı farklılıkları açıklar. Kimlik (PK) için StoreGeneratedPattern
kullanırken, uygulamada kimlik atarsanız veya DB'ye kimlik atarsanız Identity
doğru seçeneği None
olur. Computed
seçeneği "geçersiz" seçeneğidir, çünkü bu seçenek her varlık kalıcılığı sırasında (aynı zamanda güncellemelerde) değer değiştirildiğinde ve bu, ID durumunda değildir.
Identity
ve Computed
arasındaki fark, yürütülen SQL komutunun davranışıdır. Özellik Identity
ise, EF Ekle'den sonraki değeri seçer ve uygulamanıza geri döndürür. Özellik Computed
EF ise, hem Ekle hem de Güncelle sonra değeri seçip uygulamanıza geri döndürecektir.
Düzenleme:
StoreGeneratedPattern.Identity
DB Kimlik ilişkili değildir. DB'de Identity'ye sahip olmanıza gerek yoktur ve ID'yi bazı farklı teknik özelliklerle (kılavuz veya tetikleyici için varsayılan değer) ayarlayabilirsiniz, ancak uygulamanıza geri dönmeniz için hala StoreGeneratedPattern.Identity
'a ihtiyacınız vardır.
Identity
veya Computed
bir kez kullanıyorsanız EF her zaman Ekle veya db tarafından oluşturulan sütunlar için Seç ile Güncelle'yi takip edecektir. Onsuz çalışamaz. Bu komutlar veritabanına tek gidiş-dönüşte yürütülür, böylece neredeyse hiçbir performans etkisi yoktur.
teşekkürler, bu çoğunlukla sorumu yanıtlıyor. Hala bir iki daha ikilem var. Kimlik sütununu db olarak kimliğim olarak değil, yine de birincil anahtar olarak ayarlayabilirim. Bu durumda EF benim için yeni bir kimlik üretecek. Nasıl yapar? İki sql sorgulama? Verimli mi? Profilerim yok. Teşekkürler – Marek