Как избежать вычисления на стороне клиента в EF Core

Насколько я понимаю, EF Core будет запускать некоторые действия локально, когда они не могут быть преобразованы в raw sql команды / tsql. Как мы можем отключить эту функцию?

1 ответ

Решение

Чтобы предотвратить оценку ваших запросов клиентом, вы можете переопределить событие OnConfiguring объекта DbContext. Вот пример:

public class MyDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);
        optionsBuilder.ConfigureWarnings(warning =>
        {
            warning.Throw(RelationalEventId.QueryClientEvaluationWarning);
        });
    }
}

Эта конфигурация будет генерировать исключение каждый раз, когда вы пытаетесь выполнить запрос, который будет оценен на клиенте.

Другие вопросы по тегам