|
|
Opublikowano 19.02.2021 14:00:14
|
|
|
|

Dzięki Entity Framework Core możesz przejść do oryginalnego zapytania SQL podczas korzystania z relacyjnej bazy danych. Gdy wymagane zapytanie nie może być reprezentowane w LINQ, można użyć surowego zapytania SQL. Możesz też użyć surowych zapytań SQL, jeśli użycie zapytań LINQ powoduje nieefektywne zapytania SQL. Surowe zapytanie SQL może zwrócić ogólny typ jednostki lub bezkluczowy typ jednostki w modelu.
Podsumowanie: Wykonywanie instrukcji SQL i procedur przechowywanych w Entity Framework (EF).
Wykonuj zapytania o instrukcje SQL, aktualizuj i usuwaj oraz wywołuj procedury i widoki przechowywane za pomocą następujących metod:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw i FromSqlInterpolated są głównie używane do operacji zapytań ExecuteSqlRaw i ExecuteSqlInterpolated wykonują operacje dodawania, aktualizacji i usuwania bazy danych oraz zwracają liczbę dotkniętych wierszy
Koniec to interpolowane słowo kluczowe, które zazwyczaj służy do dodawania, usuwania, modyfikacji i sprawdzania parametrów oraz sposobu na odparcie się przed atakami SQL injection przy użyciu składni interpolacji ciągów znaków. Na przykład:
Wyjście instrukcji SQL nie jest przekazywane przez splicing, jak pokazano na poniższym rysunku:
Istnieje kilka ograniczeń, na które warto zwrócić uwagę podczas korzystania z natywnych zapytań SQL:
Zapytania SQL muszą zwracać dane dla wszystkich atrybutów typu entity. Nazwy kolumn w zbiorze wyników muszą odpowiadać nazwam kolumn, do których przypisane są atrybuty. Należy zauważyć, że to zachowanie różni się od EF6. Relacja odwzorowania atrybut/kolumna oryginalnego zapytania SQL jest ignorowana w EF6, a nazwy kolumn zestawu wyników muszą odpowiadać nazwam atrybutów. Zapytania SQL nie mogą zawierać powiązanych danych. Jednak w wielu przypadkach można użyć metody Include bezpośrednio po zapytaniu, aby zwrócić skorelowane dane (zobacz Include Asocation Data).
(Koniec)
|
Poprzedni:EF Core Series 4 analizuje generowane instrukcje SQLNastępny:Fiddler zastępuje linki, żądania przekierowują
|