国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

??
Entity Framework Core IQueryable<T>?? SQL ?? ????
EF Core 5/6(Net 5/6)
Core 2.1.2 ? ??
EF Core 3.1
? ??? ?? C++ Entity Framework Core IQueryable?? SQL ??? ??? ?? ? ????

Entity Framework Core IQueryable?? SQL ??? ??? ?? ? ????

Jan 03, 2025 pm 08:50 PM

How can I get the SQL code from an Entity Framework Core IQueryable?

Entity Framework Core IQueryable?? SQL ?? ????

Entity Framework Core? IQueryable?? SQL ??? ???? ?????. EF Core??? ?? ??? Entity Framework? ?? ?? ?? ??? ?????.

EF Core 5/6(Net 5/6)

EF Core 5 ????? ??? ??? ? ????. SQL ??? ???? ToQueryString() ???:

var query = _context.Widgets.Where(w => w.IsReal &amp;&amp; w.Id == 42);  
var sql = query.ToQueryString();

Core 2.1.2 ? ??

EF Core ?? ??(2.1.2 ??)? ?? ? ??? ?? ?? ??? ??? ? ????.

using System.Linq;
using System.Reflection;
using Microsoft.EntityFrameworkCore.Query;
using Microsoft.EntityFrameworkCore.Query.Internal;
using Microsoft.EntityFrameworkCore.Query.Expressions;
using Microsoft.EntityFrameworkCore.Query.Sql;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;

    public static class QueryableExtensions
    {
        private static readonly TypeInfo QueryCompilerTypeInfo = typeof(QueryCompiler).GetTypeInfo();
    
        private static readonly FieldInfo QueryCompilerField = typeof(EntityQueryProvider).GetTypeInfo().DeclaredFields.First(x => x.Name == &quot;_queryCompiler&quot;);
        private static readonly FieldInfo QueryModelGeneratorField = typeof(QueryCompiler).GetTypeInfo().DeclaredFields.First(x => x.Name == &quot;_queryModelGenerator&quot;);
        private static readonly FieldInfo DataBaseField = QueryCompilerTypeInfo.DeclaredFields.Single(x => x.Name == &quot;_database&quot;);
        private static readonly PropertyInfo DatabaseDependenciesField = typeof(Database).GetTypeInfo().DeclaredProperties.Single(x => x.Name == &quot;Dependencies&quot;);
    
        public static string ToSql<TEntity>(this IQueryable<TEntity> query)
        {
            var queryCompiler = (QueryCompiler) QueryCompilerField.GetValue(query.Provider);
            var queryModelGenerator = (QueryModelGenerator)QueryModelGeneratorField.GetValue(queryCompiler);
            var queryModel = queryModelGenerator.ParseQuery(query.Expression);
            var database = DataBaseField.GetValue(queryCompiler);
            var databaseDependencies = (DatabaseDependencies) DatabaseDependenciesField.GetValue(database);
            var queryCompilationContext = databaseDependencies.QueryCompilationContextFactory.Create(false);
            var modelVisitor = (RelationalQueryModelVisitor) queryCompilationContext.CreateQueryModelVisitor();
            modelVisitor.CreateQueryExecutor<TEntity>(queryModel);
            var sql = modelVisitor.Queries.First().ToString();
    
            return sql;
        }
    }

EF Core 3.0

In EF Core 3.0, ?? ?? ??? ?????:

        public static string ToSql<TEntity>(this IQueryable<TEntity> query)
        {
            using var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator();
            var enumeratorType = enumerator.GetType();
            var selectFieldInfo = enumeratorType.GetField(&quot;_selectExpression&quot;, BindingFlags.NonPublic | BindingFlags.Instance) ?? throw new InvalidOperationException($&quot;cannot find field _selectExpression on type {enumeratorType.Name}&quot;);
            var sqlGeneratorFieldInfo = enumeratorType.GetField(&quot;_querySqlGeneratorFactory&quot;, BindingFlags.NonPublic | BindingFlags.Instance) ?? throw new InvalidOperationException($&quot;cannot find field _querySqlGeneratorFactory on type {enumeratorType.Name}&quot;);
            var selectExpression = selectFieldInfo.GetValue(enumerator) as SelectExpression ?? throw new InvalidOperationException($&quot;could not get SelectExpression&quot;);
            var factory = sqlGeneratorFieldInfo.GetValue(enumerator) as IQuerySqlGeneratorFactory ?? throw new InvalidOperationException($&quot;could not get IQuerySqlGeneratorFactory&quot;);
            var sqlGenerator = factory.Create();
            var command = sqlGenerator.GetCommand(selectExpression);
            var sql = command.CommandText;
            return sql;
        }

EF Core 3.1

EF Core 3.1?? ? ?? ?? ??? ?????.

using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Query.SqlExpressions;
using Microsoft.EntityFrameworkCore.Query;

public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class
{
    using var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator();
    var relationalCommandCache = enumerator.Private(&quot;_relationalCommandCache&quot;);
    var selectExpression = relationalCommandCache.Private<SelectExpression>(&quot;_selectExpression&quot;);
    var factory = relationalCommandCache.Private<IQuerySqlGeneratorFactory>(&quot;_querySqlGeneratorFactory&quot;);

    var sqlGenerator = factory.Create();
    var command = sqlGenerator.GetCommand(selectExpression);

    string sql = command.CommandText;
    return sql;
}

private static object Private(this object obj, string privateField) => obj?.GetType().GetField(privateField, BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(obj);
private static T Private<T>(this object obj, string privateField) => (T)obj?.GetType().GetField(privateField, BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(obj);

???? ??? ?? ??? ???? ??? ?? ????? ?? ??? ????? ?? ??? ??? ????.

? ??? Entity Framework Core IQueryable?? SQL ??? ??? ?? ? ????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

?? ????
1742
16
Cakephp ????
1596
56
??? ????
1536
28
PHP ????
1396
31
???
C ??? : ?? ??? ?? ??? ?? C ??? : ?? ??? ?? ??? ?? Jun 10, 2025 am 12:04 AM

C? ???? ?? ??? ?? ???? ?? ???? ??? ??? ?? ???? ??????. 1) ?? ??? ?? ???? ?? ??? ??? ??? ??????. 2) ?? ??? ?????? ???? ?? ? ???? ?? ?? ??? ?????. ? ????? ????? ???? ?? ???? ??? ? ??? ?? ?? ? ?? ???? ??? ?????? ???????.

C ??? : ??? ??? ???? ??? ????? C ??? : ??? ??? ???? ??? ????? Jun 20, 2025 am 12:05 AM

?, ?? ???? C? ??? ??, ?? ??? ? ??????. 1. ?? ???? ??? ??? ?? ?? ??? ?? ?? ??? ?????. 2. ????? ??? ?? ??? ?? ??? ??? ?? ? ??? ?????. 3. ??? ???? ?? ?? ???? ???? ?? ?? ??? ??? ????? ????? ???? ?????.

C ??? ?? ?? C ??? ?? ?? Jun 13, 2025 am 12:04 AM

C? ???? ??? ???? ??? ?????? ? ?????. 1) ???? ???? ?? ??? ?? ??? ????? ?? ? ???? ?????. 2) ?? ?? ?? ??, ?? ?? ? ?? ???? ???????. 3) ???? ??? ??? ?? RAII ??? ???? ??? ???? ??????. 4) ?? ????? ?? ???? ???? ?? ? ??? ??? ???? ????????. 5) ?? ? ?? ??? ???? ?? ?? ???? ?? ? ? ????. 6) ??? ?? ???? ???? ???? ?? ???? ??????.

C? ???? ?????? ???? C? ???? ?????? ???? Jun 20, 2025 am 12:08 AM

C? ? ?? ?? ??? ??? ??? : ??? ?? ??? ? ??? ???. 1. ??? ?? ???? ?? ??? ? ???? ?? ????? ?? ??? ????? ?? ???? ??? ? ????. 2. ??? ???? ?? ?? ? ??? ?? ???? ???? ??? ?? ?? ??? ?????.

C : ??? ????? ???? ???? ?? C : ??? ????? ???? ???? ?? Jun 14, 2025 am 12:02 AM

1) ?? ? ?? ?? ??, 2) ?? ??? ???? ?? ???? ????, 3) ?? ???? ?? ??? ?? ??? ?? ???? 4) ?? ??? ??? ?? ??? ???? ??? ??? ??????. ???? ???? ?? ??? ??? ??? ?? ??? ??? ???? ?? ???? ?? ??? ???? ? ????.

C : ???? ?? ?????? C : ???? ?? ?????? Jun 20, 2025 am 12:01 AM

?, C? ???? ?? ?????. 1) ??? ??? ?? ?? ? ??? ???? ?????. 2) ?? ???? ???? ??? ????. 3) ?? ??? ????? ??? ?? ???? ??? ??? ? ??????. ?? ? ??? ?? ???? ???? ??? ?????? ??? ?? ?????.

C ??? : ???? ?? C ??? : ???? ?? Jun 20, 2025 am 12:12 AM

C DestructorsCanleadToSeVeralCommonerrors.toaVoidthem : 1) ?? ?? ?? ?? ?? ?? ???

C? ??? : ????? ??? ? ??? C? ??? : ????? ??? ? ??? Jun 21, 2025 am 12:11 AM

C? ???? ??? ??? ? ??? ?? ????? ????. 1. ??? ???? ?? ??? ?? ????? ???? ??? ??? ???? ?? ? ? ????. 2. ??? ?? ???? ?? ??? ? ???? ?? ????, ??? ???? ?????.

See all articles