Myślę, że argument pro LINQ wydaje się pochodzić od ludzi, którzy nie mają historii związanej z tworzeniem baz danych (ogólnie).
Zwłaszcza jeśli używasz produktu takiego jak VS DB Pro lub Team Suite, wiele argumentów tutaj przedstawionych nie ma zastosowania, na przykład:
Trudniejsze w utrzymaniu i testowaniu: VS zapewnia pełne sprawdzanie składni, sprawdzanie stylu, sprawdzanie referencji i ograniczeń oraz wiele innych. Zapewnia również pełne możliwości testowania jednostkowego i narzędzia do refaktoryzacji.
LINQ uniemożliwia przeprowadzenie prawdziwych testów jednostkowych, ponieważ (moim zdaniem) nie przejdzie testu ACID.
Debugowanie jest łatwiejsze w LINQ: Dlaczego? VS umożliwia pełne wejście od zarządzanego kodu i regularne debugowanie SP.
Skompilowany w jedną bibliotekę DLL zamiast skryptów wdrażania: Po raz kolejny VS przychodzi na ratunek, gdzie może budować i wdrażać pełne bazy danych lub wprowadzać bezpieczne przyrostowe zmiany danych.
Nie musisz uczyć się TSQL z LINQ: Nie, nie musisz, ale musisz nauczyć się LINQ - jaka jest korzyść?
Naprawdę nie uważam tego za korzyść. Możliwość zmiany czegoś w izolacji może brzmieć dobrze w teorii, ale fakt, że zmiany spełniają kontrakt, nie oznacza, że zwraca prawidłowe wyniki. Aby móc określić, jakie są poprawne wyniki, potrzebny jest kontekst i ten kontekst jest pobierany z kodu wywołującego.
Luźno powiązane aplikacje są ostatecznym celem wszystkich dobrych programistów, ponieważ naprawdę zwiększają elastyczność. Możliwość zmiany rzeczy w izolacji jest fantastyczna, a testy jednostkowe zapewnią, że nadal zwraca odpowiednie wyniki.
Zanim wszyscy zdenerwują się, myślę, że LINQ ma swoje miejsce i wspaniałą przyszłość. Ale w przypadku złożonych aplikacji wymagających dużej ilości danych nie sądzę, aby był gotowy na zastąpienie procedur przechowywanych. Taki pogląd powtórzyłem w tym roku przez MVP na TechEd (pozostaną bezimienne).
EDYCJA: Po stronie procedur przechowywanych LINQ do SQL nadal muszę przeczytać więcej - w zależności od tego, co znajdę, mogę zmienić powyższą diatrybę;)