.NET

Entity Framework Core 고급

Raw SQL, stored procedures, 트랜잭션, AsNoTracking, AsSplitQuery, query tags, interceptors, 성능 튜닝

25 면접 질문·
Mid-Level
1

EF Core에서 엔티티를 가져오기 위해 raw SQL 쿼리를 실행하려면 어떻게 해야 하나요?

답변

FromSql() 또는 FromSqlRaw() 메서드를 사용하면 DbContext가 추적하는 엔티티를 반환하면서 raw SQL 쿼리를 실행할 수 있습니다. 이는 stored procedure나 테이블 반환 함수 호출처럼 LINQ로 쿼리를 직접 표현할 수 없는 시나리오에 유용합니다. 이후 결과를 LINQ와 결합하여 필터를 추가하거나 관계를 포함할 수 있습니다.

2

EF Core에서 FromSqlRaw()와 ExecuteSqlRaw()의 차이점은 무엇인가요?

답변

FromSqlRaw()는 추적되는 엔티티를 반환하는 SELECT 쿼리를 실행하는 데 사용되며 LINQ와의 결합이 가능합니다. ExecuteSqlRaw()는 비쿼리 명령(INSERT, UPDATE, DELETE)을 실행하는 데 사용되며 영향을 받은 행 수를 반환합니다. FromSqlRaw()는 DbSet에 적용되고, ExecuteSqlRaw()는 Database에 적용됩니다. 이 구분은 타입 안전성과 모델 일관성을 보장합니다.

3

EF Core에서 엔티티를 반환하는 stored procedure를 호출하려면 어떻게 해야 하나요?

답변

stored procedure를 호출하고 결과를 엔티티에 매핑하려면 FromSqlRaw() 또는 Database.SqlQuery<T>()를 사용합니다. 호출 후 AsEnumerable()을 추가하는 것이 매우 중요한데, 이는 EF Core가 stored procedure 결과에 대해 구성을 시도하여 SQL 구문 오류를 일으키는 것을 방지하기 위함입니다. SQL 인젝션을 방지하기 위해 @p0, @p1 구문을 사용하여 매개변수를 전달할 수 있습니다.

4

EF Core에서 AsNoTracking()의 역할은 무엇인가요?

5

AsNoTracking() 대신 AsNoTrackingWithIdentityResolution()을 사용해야 하는 경우는 언제인가요?

+22 면접 질문

다음 면접을 위해 .NET을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기