ホームページ > バックエンド開発 > C++ > Entity Framework Core IQueryable から SQL コードを抽出する方法

Entity Framework Core IQueryable から SQL コードを抽出する方法

Barbara Streisand
リリース: 2025-01-04 04:19:40
オリジナル
457 人が閲覧しました

How to Extract SQL Code from Entity Framework Core IQueryable?

Entity Framework Core IQueryable から SQL コードを抽出する

Entity Framework Core では、IQueryable クエリによって生成された SQL コードを取得することがデバッグに重要ですそしてパフォーマンス分析。ただし、以前のバージョンの Entity Framework とは異なり、ToTraceString は EF Core では使用できなくなりました。

EF Core 5/6

EF Core の最近のバージョン (5.0 および上記)、ToQueryString() を使用して SQL コードを取得できます。メソッド:

var query = _context.Widgets.Where(w => w.IsReal && w.Id == 42);
var sql = query.ToQueryString();
ログイン後にコピー

EF Core 2.1.2 およびそれ以前

EF Core の古いバージョン (2.1.2 以前) の場合は、次のコードを使用できます。 SQL コードを取得するには:

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    // ... (code omitted for brevity) ...
}
ログイン後にコピー
ログイン後にコピー

このコードには、EF の内部フィールドにアクセスするための拡張メソッド定義が必要であることに注意してください。 Core.

EF Core 3.0

EF Core 3.0 では、次のメソッドを使用できます:

public static string ToSql<TEntity>(this IQueryable<TEntity> query)
{
    // ... (code omitted for brevity) ...
}
ログイン後にコピー
ログイン後にコピー

このメソッドには拡張機能も必要です内部フィールドにアクセスするためのメソッド定義。

EF Core 3.1 および上記

EF Core 3.1 以降では、次のメソッドを使用できます:

public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class
{
    // ... (code omitted for brevity) ...
}
ログイン後にコピー

このメソッドはリフレクションを使用して内部フィールドにアクセスし、IQueryable クエリから SQL コードを提供します。

EF Core チームは、将来のリリースで SQL コードを取得する公式の方法を導入する予定です。

以上がEntity Framework Core IQueryable から SQL コードを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート