这段代码工作正常,但我想知道是否没有某种方法可以在一个 LINQ 表达式中编写它,以便数据库服务器可以完成一次传递,而不是实现结果集然后循环遍历它,这就是我的代码会产生。
var logs = from AssetLog log in dc.AssetLogs
where log.AssetId == assetId && log.Recorded >= start && log.Recorded <= finish
select log;
return new GetInteractionBoundsResult()
{
N = logs.Max(log => log.Latitude),
S = logs.Min(log => log.Latitude),
W = logs.Min(log => log.Longitude),
E = logs.Max(log => log.Longitude)
};
那么,LINQ 大师,您将如何编写上述代码,以便它在数据库中或多或少地产生以下内容:
SELECT MIN(Latitude) S, MAX(Latitude) N, MIN(Longitude) W, MAX(Longitude) E
FROM ASSETLOG WHERE etc etc