2010-09-17 14 views

Odpowiedz

0

LINQ-do-SQL działa najlepiej z pojedynczym polem int jako kluczem podstawowym. Jeśli masz złożony klucz podstawowy, najlepiej jest utworzyć klucz zastępczy dla tej tabeli, używając pojedynczego pola liczby całkowitej.

+1

Downvote jako LinqToSql działa z złożonymi kluczami podstawowymi, nie musisz dodawać zastępczej liczby całkowitej, gdy nie jest to odpowiednie (na przykład, jeśli klucz złożony wymusza w sposób naturalny pożądaną unikatowość rzędu). Zamiast tego możesz ręcznie ustawić właściwości dwóch kolumn na "Klucz podstawowy = True" w pliku DBML, a LinqToSQL będzie działać zgodnie z oczekiwaniami. –

+0

Masz absolutną rację. Można również utworzyć surogat i określić unikalne ograniczenie dla wielu kolumn. Pojawia się pytanie, czy chcesz ręcznie zarządzać złożonymi kluczami podstawowymi, czy pozwolić LINQ-SQL zarządzać samym kluczem całkowitoliczbowym. Ja osobiście preferuję pojedyncze klucze podstawowe, głównie dlatego, że nie jestem fanem złożonych kluczy obcych. Twoje doświadczenie i preferencje mogą z szacunkiem różnić się ... –

+0

Całkowicie zgadzam się z Łukaszem. Stworzenie zastępczego klucza tylko po to, by uczynić Linqa SQL szczęśliwym, nie jest rozsądnym powodem. –

Powiązane problemy