> 백엔드 개발 > C++ > Entity Framework Core IQueryable에서 생성된 SQL을 어떻게 볼 수 있나요?

Entity Framework Core IQueryable에서 생성된 SQL을 어떻게 볼 수 있나요?

Barbara Streisand
풀어 주다: 2025-01-03 06:15:39
원래의
214명이 탐색했습니다.

How Do I View the SQL Generated by Entity Framework Core IQueryable?

Entity Framework Core IQueryable에서 생성된 SQL을 보는 방법

질문:

Entity 내 Framework Core, IQueryable 개체에 의해 생성된 SQL 코드에 어떻게 액세스합니까? 이전 버전에서 사용할 수 있었던 ToTraceString() 메서드는 EF Core에 없습니다.

답변:

EF Core 5/6 / Net 5/ 6

.NET 5 및 6이 포함된 EF Core 5 및 6의 경우, ToQueryString() 메서드를 사용할 수 있습니다.

var query = _context.Widgets.Where(w => w.IsReal && w.Id == 42);
var sql = query.ToQueryString();
로그인 후 복사

이전 버전의 .NET Core의 경우 확장 메서드를 사용할 수 있습니다.

Core 2.1.2

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    // Reflection and casting voodoo to get EF internal classes
    var sql = ...;

    return sql;
}
로그인 후 복사

EF 코어 3.0

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    using (var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator())
    {
        // More reflection and casting voodoo
        var sql = ...;

        return sql;
    }
}
로그인 후 복사

EF Core 3.1

public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class
{
    using (var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator())
    {
        // Even more reflection and casting voodoo
        var sql = ...;

        return sql;
    }
}
로그인 후 복사

참고:

EF Core 이전 버전의 경우 5에서는 생성된 SQL을 검색하려면 리플렉션이 필요합니다. 쿼리 가능합니다.

위 내용은 Entity Framework Core IQueryable에서 생성된 SQL을 어떻게 볼 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿