我有这行运行,直到我启用RelationalEventId.QueryClientEvaluationWarning。
下面让我们说我想要做的就是根据他们最新的订单日期的结果(客户)进行排序。
.OrderByDescending(x=>x.orders.Max(y=>y.CreateDate))
余配置上下文如下之后我意识到MAX()不转换为TSQL。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.ConfigureWarnings(warning =>
{
warning.Throw(RelationalEventId.QueryClientEvaluationWarning);
});
}
错误:
InvalidOperationException: Error generated for warning 'Microsoft.EntityFrameworkCore.Query.QueryClientEvaluationWarning: The LINQ expression 'Max()' could not be translated and will be evaluated locally.
我想在本地计算最大是针对具有更好的性能。 有没有什么办法来计算SQL Server上最大?