.NET

Entity Framework Core zaawansowany

Raw SQL, stored procedures, transakcje, AsNoTracking, AsSplitQuery, query tags, interceptors, dostrajanie wydajności

25 pytań z rozmów·
Mid-Level
1

Jak wykonać surowe zapytanie SQL, aby pobrać encje w EF Core?

Odpowiedź

Metoda FromSql() lub FromSqlRaw() pozwala wykonywać surowe zapytania SQL, zwracając jednocześnie encje śledzone przez DbContext. Jest to przydatne w scenariuszach, w których LINQ nie może bezpośrednio wyrazić zapytania, na przykład przy wywoływaniu stored procedures lub funkcji zwracających tabele. Wyniki można następnie komponować z LINQ, aby dodać filtry lub dołączyć relacje.

2

Jaka jest różnica między FromSqlRaw() a ExecuteSqlRaw() w EF Core?

Odpowiedź

FromSqlRaw() służy do wykonywania zapytań SELECT zwracających śledzone encje, umożliwiając komponowanie z LINQ. ExecuteSqlRaw() służy do wykonywania poleceń niezwracających wyników (INSERT, UPDATE, DELETE) i zwraca liczbę zmienionych wierszy. FromSqlRaw() stosuje się do DbSet, natomiast ExecuteSqlRaw() do Database. To rozróżnienie zapewnia bezpieczeństwo typów i spójność modelu.

3

Jak wywołać stored procedure zwracającą encje w EF Core?

Odpowiedź

Użyj FromSqlRaw() lub Database.SqlQuery<T>(), aby wywołać stored procedure i zmapować wyniki na encje. Kluczowe jest dodanie AsEnumerable() po wywołaniu, aby uniemożliwić EF Core próbę komponowania na wynikach stored procedure, co spowodowałoby błędy składni SQL. Parametry można przekazywać przy użyciu składni @p0, @p1, aby zapobiec wstrzyknięciu SQL.

4

Jaka jest rola AsNoTracking() w EF Core?

5

Kiedy używać AsNoTrackingWithIdentityResolution() zamiast AsNoTracking()?

+22 pytań z rozmów

Opanuj .NET na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo