Zajmuję się tworzeniem strony ASP.NET i używam LINQ do obsługi rozmów z serwerem MS SQL. W języku SQL wszystko jest w porządku, ale o wiele lepiej jest projektować zapytania za pomocą LINQ. Wiem, że są podobne, ale uważam, że łatwiej jest projektować złożone zapytania w LINQ. Moje pytanie brzmi: czy istnieje sposób zaprojektowania kwerendy w LINQ, a następnie uzyskać SQL, który wygenerował? Chciałbym osadzić SQL w procedurze przechowywanej, ponieważ wiele stron (poza moją kontrolą) będzie musiało wykonać to samo zapytanie.Czy istnieje sposób na uzyskanie SQL utworzony przez kwerendę LINQ?
Odpowiedz
Tak. Kontekst bazy danych LINQ ma właściwość Log, która wyprowadza SQL, który wykonał. Możesz to również zrobić za pomocą bezpłatnego produktu o nazwie LinqPad i komercyjnego produktu o nazwie Linqer.
Możesz również użyć DataContext.GetCommand (zapytanie). – itowlson
można je dostać 2 sposoby:
- Zastosowanie LINQPad
Zastosowanie toString() na zapytania, aby uzyskać formę SQL:
var query = od X w SomeTable gdzie x .SomeField == 5 wybierz x.SomeOtherField; Console.WriteLine (query.ToString());
Jeśli chcesz uzyskać więcej szczegółowych informacji można użyć Linq to Sql Profiler który wyświetli wszystkie zapytania jak alerts
Podczas pisania sprawozdań LINQ, które są wykonywane na SQL Server, Zawsze gałki ocznej je Program SQL Server Profiler. Interpretacja wykonywana wewnątrz SQL często Cię zaskakuje.
W narzędziach wydajności/SQL Server Profiler uruchom nowy ślad.
Wykonaj zapytanie w swojej aplikacji, grab wyjście z Profiler Wklej do analizatora kwerend SQL Server
- 1. Czy istnieje sposób na optymalizację tego zapytania LINQ do Entities?
- 2. Czy istnieje sposób na uzyskanie ograniczeń tabeli w SQLite?
- 3. Czy istnieje sposób na uzyskanie wszystkich zarządzanych jednostek z EntityManager
- 4. Czy istnieje sposób na uzyskanie wszystkich wartości w NSUserDefaults?
- 5. Czy istnieje sposób na uzyskanie typu "bieżącej funkcji"?
- 6. Czy istnieje sposób na uzyskanie ruchów obiektów całkowitych w vim?
- 7. Czy istnieje sposób na uzyskanie IEqualityComparer od programu IComparer?
- 8. Czy istnieje sposób na uzyskanie danych wyjściowych jQuery * rzeczywisty znacznik *?
- 9. Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI
- 10. Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?
- 11. Czy istnieje sposób na uzyskanie domyślnego obiektu $ .ajax?
- 12. Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
- 13. Czy istnieje sposób na uzyskanie REPL w pydev?
- 14. Czy istnieje sposób na uzyskanie "nazwanych" komórek za pomocą EPPlus?
- 15. Czy istnieje sposób na uzyskanie postępu przesyłania jQuery ajax?
- 16. Czy istnieje prosty sposób na uzyskanie rozmiaru obiektu java?
- 17. Czy istnieje sposób na uzyskanie identyfikatora pakietu w czasie wykonywania?
- 18. Czy istnieje sposób na uzyskanie wyjątku w Haskell?
- 19. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 20. Czy istnieje sposób na uzyskanie danych pikseli z Internet Explorera?
- 21. Czy istnieje sposób na uzyskanie zlokalizowanych nazw popularnych przycisków dialogowych?
- 22. Czy istnieje sposób na uzyskanie XML dla produktów Amazon?
- 23. Czy istnieje sposób na uzyskanie pi w arkuszu kalkulacyjnym CSS?
- 24. Czy istnieje sposób na uzyskanie narzędzia javadoc do dokumentowania adnotacji?
- 25. Czy istnieje sposób na uzyskanie aliasu typu poprzez odbicie?
- 26. Czy istnieje sposób na uzyskanie różnych partion Keys z tabeli
- 27. Czy istnieje sposób na uzyskanie CSS XSS w nowoczesnych przeglądarkach?
- 28. wykonać kwerendę sql na DataTable
- 29. Linq do SQL - czy istnieje sposób odwzorowania metody rozszerzenia na procedurę/procedurę składowaną SQL?
- 30. IDataReader - Jakikolwiek sposób na uzyskanie całkowitych wierszy?
LINQ do SQL? LINQ do jednostek? LINQ do czegoś innego? (Przy okazji, wszystkie z nich zostały już wielokrotnie odpowiedział na tej stronie, możesz spróbować wyszukiwania.) –