Jakoś nie zauważyłem, aby z baz danych wycofywano takie rozwiązania jak procedury przechowywane, widoki, a sam język SQL też ma się dobrze.
Ja nie mówię, że procedury czy widoki są złe. Ja twierdzę, że nie ma sensu ich pisać w przypadku prostych operacji CRUD.
Wszelakiego rodzaju ORM są zawsze warstwą pośrednią i siłą rzeczy nie zapewnią takiej wydajności jak zapytania SQL wykonywane bezpośrednio w bazie.
Bzdura, select to select. Większą wydajność możesz osiągać w przypadku bardziej złożonych operacji.
Stratę na wydajności masz jedynie na budowaniu zapytania w aplikacji, co jest praktycznie bez znaczenia w porównaniu z samymi operacjami I/O w bazie i transferem przez sieć. Za to zyskujesz niezawodność i nie tracisz czasu na poprawianie głupich literówek.
Bazy danych i oprogramowanie je obsługujące tworzy się od dziesięcioleci i jakoś działało nawet jak nie było testów jednostkowych wg obowiązującej dzisiaj definicji.
Odpowiem po Twojemu - porównaj nakład pracy na ręczne pisanie SQL, debugowanie go i poprawianie literówek, a na wygenerowanie dokładnie takiego samego kodu przez ORM automatycznie.
Poza tym czy wybrać code first /model first / database first to jest sprawa zależna od wielu czynników i wskazywanie tylko jednego rozwiązanie jako poprawnego jest trochę śmieszne.
A ktoś je tu wskazuje?
to zrób prosty MessagBox otwierany z "formularza głównego" w którym wyświetli się lista będąca wynikiem zapytania z parametrem przekazanym z z tego formularza, a następnie zwróć wynik wyboru użytkownika do pola TextBox "formularza głównego" i porównaj nakład pracy.
Ale po co? Nic nie zmieni to faktu, że WebFormsy to komponentowe i zdarzeniowe programowanie dla weba. Jeśli temu przeczysz, to znaczy, że nie masz o nich pojęcia.
kilka miesięcy temu w swojej aplikacji zrezygnowałem własnie z wyszukiwania realizowanego bezpośrednio w kodzie programu i przeniosłem je do procedury przechowywanej. Procedura wyszła najdłuższa jaką w życiu napisałem, ale szybkość wyszukiwania spadła z minut na sekundy.
Co niczemu nie dowodzi, ewentualnie tylko potwierdza to, o czym pisałem. Wyszukiwanie to nie jest CRUD.
Pisanie SQL ręcznie to okradanie siebie z czasu i klienta z pieniędzy.