如何避免 EF Core 中的客户端计算
how to avoid client side computation in EF Core
据我了解,EF Core 将 运行 某些无法转换为原始 sql 命令/tsql 的本地操作。
我们如何禁用此功能?
要防止客户端评估您的查询,您可以覆盖 DbContext 的 OnConfiguring 事件。这是一个例子:
public class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.ConfigureWarnings(warning =>
{
warning.Throw(RelationalEventId.QueryClientEvaluationWarning);
});
}
}
只要您尝试将在客户端上评估的查询,此配置就会抛出异常。
据我了解,EF Core 将 运行 某些无法转换为原始 sql 命令/tsql 的本地操作。 我们如何禁用此功能?
要防止客户端评估您的查询,您可以覆盖 DbContext 的 OnConfiguring 事件。这是一个例子:
public class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.ConfigureWarnings(warning =>
{
warning.Throw(RelationalEventId.QueryClientEvaluationWarning);
});
}
}
只要您尝试将在客户端上评估的查询,此配置就会抛出异常。