Entity Framework Core работает медленно при выполнении первого запросаC#

Место общения программистов C#
Anonymous
Entity Framework Core работает медленно при выполнении первого запроса

Сообщение Anonymous »

Я использую Entity Framework Core впервые и совершенно запутался, пытаясь понять, почему он выполняет слишком медленно (около 2–3 секунд) первый запрос каждый раз, когда я запускаю свой проект.
Чтобы предоставить вам дополнительную информацию, я могу сказать, что я работаю над проектом .NET 6, а версия .NET Framework — 7.0.18, поскольку это последняя версия, совместимая с моей Версия .NET.
Вот метод, который я вызываю для выполнения запроса:

Код: Выделить всё

public async Task GetField()
{
using ContextClass context = new ContextClass();

var variable = await context.Table
.FirstOrDefaultAsync(v => v.Id == 429719);

return variable?.Field ?? "a"; //If nothing is found, it will retrieve an empty string
}
Я увидел, что если я вызову тот же метод (или другой из другого DataContext, это не займет эти секунды снова, и результат будет возвращен немедленно.
Решение, которое я нашел на данный момент, — это создание класса «Инициализатор», который выполняет следующие действия:

Код: Выделить всё

public class Initializer
{
public Initializer() { }

public async void DbInitializer()
{
using (var context = new CodisContext())
{
await context.Database.EnsureCreatedAsync();
}
}
}
Вызов функции DbInitializer приводит к тому, что первый запрос выполняется так, как ожидается.
Есть ли у вас какой-либо совет или совет, которого следует избегать? используя этот метод?

Подробнее здесь: https://stackoverflow.com/questions/783 ... irst-query

Вернуться в «C#»