>백엔드 개발 >C++ >엔티티 프레임 워크 코어에서 사용자 정의 결과 매핑으로 원시 SQL 쿼리를 어떻게 실행할 수 있습니까?

엔티티 프레임 워크 코어에서 사용자 정의 결과 매핑으로 원시 SQL 쿼리를 어떻게 실행할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-27 00:56:12390검색

How Can I Execute Raw SQL Queries with Custom Result Mappings in Entity Framework Core?

Entity Framework Core에서 원시 SQL 쿼리 및 사용자 정의 결과 매핑 실행

개요

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.