C# 检索实体框架核心生成的SQL

C# 检索实体框架核心生成的SQL,c#,sql,entity-framework,linq,C#,Sql,Entity Framework,Linq,我正在尝试检索实体框架为以下LINQ查询生成的原始SQL: pagedItemResults = from firstItem in dbData.Accession join secondItem in pagedRowNumberResults on firstItem.AccessionNumber equals secondItem select

我正在尝试检索实体框架为以下LINQ查询生成的原始SQL:

pagedItemResults = from firstItem in dbData.Accession
                        join secondItem in pagedRowNumberResults
                        on firstItem.AccessionNumber equals secondItem
                        select new PaginationResultRow
                        {
                            Number = firstItem.AccessionNumber,
                            ID = firstItem.AccessionId,
                            Name = firstItem.AcquisitionType.Name,
                            Description = firstItem.Description
                        };

虽然它可能非常简单,与之前版本的EF的其他答案类似,但我运气不好,在网上什么也没找到。。有什么想法吗???

我真的很喜欢MiniProfiler,请看。如果没有类似的东西,我会说您必须在实际数据库上使用探查器。

您可以通过实现iLogger提供程序来打开日志记录。请参阅文档中的

您只需要向单个上下文实例注册记录器。注册后,它将用于同一AppDomain中上下文的所有其他实例


您可以通过以下方式将生成的tsql记录到输出窗口:

Microsoft.Extensions.Logging.Debug

首先,从Nuget获取它,然后在您的上下文中,您必须定义一个LoggerFactory

之后,在上下文中的onconfigurang中使用它

public static readonly Microsoft.Extensions.Logging.LoggerFactory _loggerFactory =
                    new LoggerFactory(new[] {
                    new Microsoft.Extensions.Logging.Debug.DebugLoggerProvider()
    });

optionsBuilder.UseLoggerFactory(_loggerFactory);

尝试在SQL实例上运行跟踪?我知道在普通实体框架上,您可以只执行pagedItemResults.ToString,它将输出查询字符串,您不能在core上执行此操作吗?注意,我认为他可能正在使用ASP.NET core,根据文档,它仍然可以工作,但在注册记录器所需执行的操作方面,它的说明略有不同。
    private static string[] _categories =
    {
        typeof(Microsoft.Data.Entity.Storage.Internal.RelationalCommandBuilderFactory).FullName,
        typeof(Microsoft.Data.Entity.Storage.Internal.SqlServerConnection).FullName
    };
public static readonly Microsoft.Extensions.Logging.LoggerFactory _loggerFactory =
                    new LoggerFactory(new[] {
                    new Microsoft.Extensions.Logging.Debug.DebugLoggerProvider()
    });

optionsBuilder.UseLoggerFactory(_loggerFactory);