
Entity Framework Core fortgeschritten
Raw SQL, Stored Procedures, Transaktionen, AsNoTracking, AsSplitQuery, Query Tags, Interceptors, Performance-Tuning
1Wie führt man eine Raw-SQL-Abfrage aus, um Entitäten in EF Core abzurufen?
Wie führt man eine Raw-SQL-Abfrage aus, um Entitäten in EF Core abzurufen?
Antwort
Die Methode FromSql() oder FromSqlRaw() ermöglicht die Ausführung von Raw-SQL-Abfragen und gibt dabei vom DbContext nachverfolgte Entitäten zurück. Das ist nützlich in Szenarien, in denen LINQ die Abfrage nicht direkt ausdrücken kann, etwa beim Aufruf von Stored Procedures oder tabellenwertigen Funktionen. Die Ergebnisse können anschließend mit LINQ kombiniert werden, um Filter hinzuzufügen oder Beziehungen einzubinden.
2Was ist der Unterschied zwischen FromSqlRaw() und ExecuteSqlRaw() in EF Core?
Was ist der Unterschied zwischen FromSqlRaw() und ExecuteSqlRaw() in EF Core?
Antwort
FromSqlRaw() wird verwendet, um SELECT-Abfragen auszuführen, die nachverfolgte Entitäten zurückgeben, und ermöglicht die Komposition mit LINQ. ExecuteSqlRaw() wird verwendet, um Nicht-Abfrage-Befehle (INSERT, UPDATE, DELETE) auszuführen, und gibt die Anzahl der betroffenen Zeilen zurück. FromSqlRaw() wird auf einem DbSet angewendet, während ExecuteSqlRaw() auf Database angewendet wird. Diese Unterscheidung gewährleistet Typsicherheit und Modellkonsistenz.
3Wie ruft man eine Stored Procedure auf, die Entitäten in EF Core zurückgibt?
Wie ruft man eine Stored Procedure auf, die Entitäten in EF Core zurückgibt?
Antwort
Verwenden Sie FromSqlRaw() oder Database.SqlQuery<T>(), um eine Stored Procedure aufzurufen und die Ergebnisse auf Entitäten abzubilden. Es ist entscheidend, nach dem Aufruf AsEnumerable() hinzuzufügen, um zu verhindern, dass EF Core versucht, auf den Ergebnissen der Stored Procedure zu komponieren, was SQL-Syntaxfehler verursachen würde. Parameter können mit der Syntax @p0, @p1 übergeben werden, um SQL-Injection zu verhindern.
Welche Rolle spielt AsNoTracking() in EF Core?
Wann sollte man AsNoTrackingWithIdentityResolution() anstelle von AsNoTracking() verwenden?
+22 Interview-Fragen
Weitere .NET-Interviewthemen
C#-Grundlagen
LINQ & Delegates
C#-Sprachgrundlagen
ASP.NET Core Grundlagen
ASP.NET Core Request-Lebenszyklus
Configuration & Settings
Anwendungslebenszyklus
Dependency Injection
Entity Framework Core
Minimal APIs
Web-API-Entwicklung
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
JSON-Serialisierung
Erweiterte C#-Funktionen
Clean Architecture
Logging, Monitoring & Observability
Unit-Tests & xUnit
Integrationstests
Docker & Containerization
NuGet Package Management
Memory Management & GC
Reaktive Programmierung
Async/await & Patterns
.NET Design Patterns
Performance-Optimierung
Sicherheit & Best Practices
SignalR & Echtzeit
Microservices-Architektur
Meistere .NET für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten