개요
Entity Framework Core의 발전으로 인해 사용자 지정 결과 매핑이 포함된 원시 SQL 쿼리가 처리되는 방식이 변경되었습니다. 이 문서에서는 다양한 EF Core 버전에 대한 솔루션에 중점을 두고, 특히 테이블 데이터를 전체 텍스트 검색 쿼리의 결과와 결합할 때 데이터 검색 문제를 다룹니다.
EF Core 8 이상
EF Core 8 및 후속 버전에서는 이 프로세스를 단순화합니다. SqlQuery
메서드는 이제 임의 유형 반환을 직접 지원합니다. 이를 통해 키가 없는 엔터티 유형과 사용자 정의 클래스를 사용하여 쿼리 결과를 매핑할 수 있습니다.
EF Core 3.0 및 키가 없는 엔터티 유형
EF Core 3.0의 경우 키 없는 엔터티 유형이 깔끔한 솔루션을 제공합니다. [Keyless]
속성을 사용하거나 HasNoKey()
.
<code class="language-csharp">[Keyless] public class SomeModel { ... } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<SomeModel>().HasNoKey(); }</code>
FromSqlRaw
또는 FromSql
을 사용하여 쿼리를 실행하세요.
<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("YOUR SQL SCRIPT").ToList();</code>
EF Core 2.1 및 쿼리 유형
EF Core 2.1에서는 쿼리 유형을 도입하여 사용자 정의 클래스 매핑에 대한 구조화된 접근 방식을 제공했습니다. DbQuery<T>
에 DbContext
속성을 추가하고 FromSql
:
<code class="language-csharp">public DbQuery<SomeModel> SomeModels { get; set; } var result = context.SomeModels.FromSql("YOUR SQL SCRIPT").ToList();</code>
요약
이러한 방법은 Entity Framework Core에서 원시 SQL 쿼리를 실행할 때 사용자 지정 결과 매핑의 필요성을 효과적으로 해결하여 전체 텍스트 검색 결과 및 결합된 데이터 세트와 관련된 시나리오를 포함하여 유연한 데이터 검색을 가능하게 합니다. EF Core 버전에 가장 적합한 접근 방식을 선택하세요. "YOUR SQL SCRIPT"
을 실제 SQL 쿼리로 바꿔야 합니다.
위 내용은 엔티티 프레임 워크 코어에서 사용자 정의 결과 매핑으로 원시 SQL 쿼리를 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!