Доступ к SQL из запросов Entity Framework Core в ASP.NET Core - PullRequest
0 голосов
/ 24 ноября 2018

В сообщении за последнюю неделю или около того кто-то ссылался на сообщение: http://rion.io/2016/10/19/accessing-entity-framework-core-queries-behind-the-scenes-in-asp-net-core/

В блоге было описано использование внутренних элементов EF для отображения сгенерированного SQL для данного запроса EF.Наличие такого инструмента неоценимо и поможет моей команде разработчиков EF лучше написать код.Однако, поскольку он использует внутренний и неподдерживаемый код, он не будет собираться с использованием EF 2.1.4.Ссылка на RelationalQueryModelVisitor исчезла, и код не будет собираться.

Я также использую .net core 2.1.

Есть ли другой или похожий подход?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

Используйте класс по этой ссылке , который работает в .NET Core 2.1.Да, я знаю, что вы сказали, что пробовали, но я просто попробовал, и это сработало, поэтому в вашем проекте должно быть что-то еще не так.Сообщите нам об ошибке компилятора, которую вы получаете, и мы можем помочь вам в дальнейшем.

Вот что я сделал:

  1. Создал новый проект ASP.NET Core и убедился, что он нацелен на .NETCore 2.1.
  2. Добавлена ​​Microsoft.EntityFrameworkCore версия 2.1.4 от NuGet.
  3. Создан класс IQueryableExtensions и вставлен код.

Компилируется.

Класс RelationalQueryModelVisitor все еще существует в .NET Core 2.1.Документация показывает, что он все еще там (обратите внимание на «Entity Framework Core 2.1» в верхнем левом углу документов), а текущий исходный код на GitHub все еще показывает его там.

0 голосов
/ 13 апреля 2019

Он находится в пакете Microsoft.EntityFrameworkCore.Relational nuget.

0 голосов
/ 25 ноября 2018

Будет ли достаточно использовать их функции регистрации?

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(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...