从ASP.NET Core中的实体框架核心查询访问SQL

问题描述 投票:1回答:3

在过去一周左右的帖子中,有人提到了一个帖子:http://rion.io/2016/10/19/accessing-entity-framework-core-queries-behind-the-scenes-in-asp-net-core/

该博客概述了使用EF的内部结构来显示给定EF查询的生成的SQL。拥有这样的工具是非常宝贵的,并且将帮助我的EF开发团队编写更好的代码。但是,由于它使用内部和不受支持的代码,因此不会使用EF 2.1.4构建。对RelationalQueryModelVisitor的引用现已消失,代码将无法构建。

我也在使用.net core 2.1。

是否有其他或类似的方法?

谢谢。

c# entity-framework asp.net-core
3个回答
1
投票

使用this link中的类,它在.NET Core 2.1中有效。是的,我知道你说你试过了,但我只是尝试了它并且它有效,所以你的项目肯定会出现其他问题。告诉我们你得到的编译器错误,我们可以进一步提供帮助。

这是我做的:

  1. 创建了一个新的ASP.NET Core项目,并确保它的目标是.NET Core 2.1。
  2. 从NuGet添加了Microsoft.EntityFrameworkCore 2.1.4版。
  3. 创建了一个IQueryableExtensions类并粘贴了代码。

它汇编。

RelationalQueryModelVisitor类仍然存在于.NET Core 2.1中。 documentation shows it is still there(注意文档左上角的“实体框架核心2.1”)和current source code on GitHub仍然在那里显示它。


0
投票

使用他们的日志功能是否足够?

https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging

public static readonly LoggerFactory MyLoggerFactory
    = new LoggerFactory(new[] {new ConsoleLoggerProvider((_, __) => true, true)});

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    => optionsBuilder
        .UseLoggerFactory(MyLoggerFactory) // Warning: Do not create a new ILoggerFactory instance each time
        .UseSqlServer(...);

0
投票

它位于Microsoft.EntityFrameworkCore.Relational nuget包中。

© www.soinside.com 2019 - 2024. All rights reserved.