2010-09-17 13 views
6
linq-to-sql bir tablodaki bir linq-to-sql ile bir hata almak
+0

tamam, linq ile katılıyorum. – garik

+0

Kompozit bir birincil anahtar mı kastediyorsunuz? –

cevap

0

LINQ-to-SQL, birincil anahtar olarak tek bir alan int ile en iyi performansı gösterir. Birleşik bir birincil anahtarınız varsa, en iyi seçiminiz, tek bir tam sayı alanı kullanarak bu tablo için bir vekil anahtar oluşturmaktır.

+1

LinqToSql olarak Downvote, birleşik birincil anahtarlarla çalışır, uygun olmadığında bir ara tamsayı eklemeniz gerekmez (örneğin, birleşik anahtarın doğal olarak bir satırın istenen tekliğini zorlarsa). Bunun yerine, DBML dosyasında 2 sütun özelliğini "Primary Key = True" olarak manüel olarak ayarlayabilirsiniz ve LinqToSQL beklendiği gibi çalışır. –

+0

Kesinlikle haklısınız. Ayrıca, temsilci oluşturabilir ve birden çok sütun üzerinde benzersiz bir kısıtlama belirtebilirsiniz. Soru, bileşik birincil anahtarları manuel olarak yönetmek isteyip istemediğinizi veya LINQ-to-SQL'in tek tamsayı anahtarının kendisini yönetmesini isteyip istemediğinizi ortaya çıkarır. Ben tek bir tam sayı birincil anahtarlarını kendim tercih ederim, çünkü birleşik yabancı anahtarların hayranı değilim. Deneyiminiz ve tercihiniz saygıdeğer olabilir ... –

+0

Luke ile tamamen katılıyorum. Sadece Linq'den SQL'e mutlu etmek için bir vekil anahtar oluşturmak makul bir sebep değildir. –

İlgili konular