2011-10-20 8 views
7

Właśnie pobrałem LinqPad, aby zbadać zalety korzystania z zapytań Linq w aplikacji, nad którą pracuję, jednak gdy patrzę na moje tabele bazy danych w kolumnie po lewej Wyświetla LinqPad wszystkie moje tabele z 's' na końcu, na przykład CategoryTbl staje się CategoryTbls, ale kiedy przeglądam moją bazę danych w studio zarządzania SQL, nazwy tabel wydają się poprawne.LinqPad dodaje literę S na końcu każdej tabeli

Chociaż wszystkie tabele, które powinny mieć S na końcu, tj. Klientów, pozostają niezmienione.

Kiedy wykonuję kwerendę Linq, muszę wykonać ją przeciwko CategoryTbl, ale zapytanie SQL musi zostać wykonane względem CategoryTbl.

Zastanawiam się, dlaczego tak się stało, czy jest to błąd czy funkcja? a jeśli to jest funkcja, dlaczego?

Dzięki

Odpowiedz

11

Pierwsze pytanie od LINQPad FAQ:

Dlaczego LINQPad pluralize właściwości tabeli i stowarzyszeniu dziecko? Czy mogę to wyłączyć?

Pluralizowanie właściwości powiązania podrzędnego (przy jednoczesnym zachowaniu pojedynczych skojarzeń nadrzędnych) tworzy najbardziej naturalne zapytania i jest to, co Visual Studio robi domyślnie w budowaniu typowych danych.

Aby wyłączyć pluralizację, odznacz opcję "Liczba mnogość" podczas dodawania połączenia z bazą danych. (Jeśli połączenie zostało już utworzone, kliknij je prawym przyciskiem myszy, aby edytować właściwości połączenia).

+0

Dziękuję, lol Nie myślałem o FAQ, googled to trochę i komunikat o błędzie, który dostałem, ale dostałem trochę dość ogólnych wyników. – Purplegoldfish

4

to również standardowe zachowanie linq2sql generowane artefakty - The IEnumerables na DataContext to [tabeli] s i jednostka [tabeli]. Więc twoje zapytania linq zazwyczaj są czymś w rodzaju.

List<Category> categoryList = context.Categories.Where(cat => somePredicateOnCat).ToList(); 

Zazwyczaj umożliwia to intuicyjne czytanie. Czy rozważasz usunięcie węgierskiego sufiksu "tbl" ze standardów nazewnictwa tabel?