Получить сгенерированный LINQ запрос к EF Core SqLite In Memory - PullRequest
0 голосов
/ 30 марта 2020

Я использую ядро ​​EF SQLite In memory для модульного тестирования. Я хочу, чтобы запрос был сгенерирован LINQ как SQL Profiler, чтобы я мог оптимизировать запрос. Есть ли способ проверить запрос?

Ответы [ 3 ]

1 голос
/ 30 марта 2020

Обратитесь по этой ссылке для полного объяснения: Ведение журнала - EF Core

Если вы хотите войти в консоль: Установите пакет Microsoft.Extensions.Logging.Console

dotnet add package Microsoft.Extensions.Logging.Console

Затем создайте реализацию фабрики регистратора:

public static readonly ILoggerFactory MyLoggerFactory
    = LoggerFactory.Create(builder => { builder.AddConsole(); });

Затем в свой метод переопределения DbContext onConfiguring добавьте вызов .UseLoggerFactory:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    => optionsBuilder
    .UseLoggerFactory(MyLoggerFactory) // Warning: Do not create a new ILoggerFactory instance each time
    .UseSqlServer(
        @"Server=(localdb)\mssqllocaldb;Database=EFLogging;Trusted_Connection=True;ConnectRetryCount=0");
0 голосов
/ 30 марта 2020

В Visual Studio щелкните View / SQL Обозреватель объектов сервера и проверьте, заполнены ли ваши таблицы. Если нет, то вы должны добавить строительные леса.

Щелкните правой кнопкой мыши Project / Add / New Scaffold / MVC Контроллер с представлениями, используя EF.

Проверьте эту ссылку. https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-3.1&tabs=visual-studio

0 голосов
/ 30 марта 2020

Два варианта

dotnet ef migrations script

dotnet ef migrations script 20190725054716_Add_new_tables 20190829031257_Add_another_table

Вы можете передать вывод в файл, если хотите. Помимо этого вам также необходимо опубликовать функции модульного тестирования.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...