Entity Framework Core의 발전으로 인해 특히 사용자 지정 데이터 유형과 관련하여 원시 SQL 쿼리가 처리되는 방식이 변경되었습니다. 최신 버전에서는 dbData.Database.SqlQuery<somemodel>
메서드를 더 이상 사용할 수 없습니다. 이 가이드에서는 다양한 EF Core 버전에서 사용자 지정 유형을 반환하는 원시 SQL 쿼리를 실행하는 방법을 자세히 설명합니다.
EF Core 8 및 후속 릴리스에서는 SqlQuery
메서드가 크게 향상되어 임의 유형의 반환을 직접 지원합니다. 이렇게 하면 프로세스가 상당히 단순화됩니다.
키가 없는 엔터티 유형 활용:
EF Core 3.0 이상 내 원시 SQL 쿼리에서 사용자 지정 데이터 유형을 처리하기 위해 권장되는 접근 방식은 키가 없는 엔터티 유형을 사용하는 것입니다. 이는 [Keyless]
속성이나 .HasNoKey()
구성 방법을 사용하여 수행됩니다.
<code class="language-csharp">[Keyless] public class SomeModel { // Properties }</code>
FromSqlRaw
또는 FromSql
을 사용하여 쿼리를 실행하세요.
<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL_SCRIPT").ToList(); var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
DbQuery 활용
EF Core 2.1 RC1에서는 DbQuery<T>
내에 DbContext
속성을 정의하고 FromSql
메서드를 사용합니다.
<code class="language-csharp">public DbSet<SomeModel> SomeModels { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<SomeModel>().HasNoKey(); } // Execute query var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</code>
대체 전략:
EF Core 2.0에는 해결 방법이 필요합니다.
SqlCommand
를 직접 사용하세요. 이는 EF Core의 기능을 우회하여 이점을 줄입니다.위 내용은 Entity Framework Core에서 사용자 지정 데이터 형식을 사용하여 원시 SQL 쿼리를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!