如何查看Entity Framework Core IQueryable 產生的SQL
問題:
問題:問題:
var query = _context.Widgets.Where(w => w.IsReal && w.Id == 42); var sql = query.ToQueryString();
EF Core 5/6 / Net 5/ 6
對於帶有.NET 5 和6的EF Core 5 和6,您可以使用ToQueryString()方法:
public static string ToSql<TEntity>(this IQueryable<TEntity> query) { // Reflection and casting voodoo to get EF internal classes var sql = ...; return sql; }
Core 2.1.2
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核心3.0
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 3.1
注意:注意:以上是如何查看Entity Framework Core IQueryable產生的SQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!