2010-09-17 13 views

risposta

0

LINQ-to-SQL si comporta meglio con un singolo campo int come chiave primaria. Se hai una chiave primaria composta, la soluzione migliore è creare una chiave surrogata per quella tabella usando un singolo campo intero.

+1

Downvote come LinqToSql funziona con le chiavi primarie composite, non è necessario aggiungere un intero surrogato quando non è appropriato (ad esempio se la chiave composita rafforza l'unicità desiderata di una riga in modo naturale). Invece è possibile impostare manualmente le proprietà di 2 colonne su "Chiave primaria = True" nel file DBML e LinqToSQL funzionerà come previsto. –

+0

Hai assolutamente ragione. È inoltre possibile creare il surrogato e specificare un vincolo univoco sulle colonne multiple. La domanda diventa se desideri o meno gestire manualmente le chiavi primarie composite o consentire a LINQ-to-SQL di gestire la singola chiave intera stessa. Preferisco i singoli numeri interi chiavi primarie, principalmente perché non sono un fan delle chiavi esterne composte. La tua esperienza e preferenza potrebbero differire rispettosamente ... –

+0

Sono completamente d'accordo con Luke. Creare una chiave surrogata solo per rendere felice Linq to SQL non è un motivo ragionevole. –

Problemi correlati