Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在另一个linq查询中查询具有最新日期的记录_C#_.net_Linq_Entity Framework 6 - Fatal编程技术网

C# 如何在另一个linq查询中查询具有最新日期的记录

C# 如何在另一个linq查询中查询具有最新日期的记录,c#,.net,linq,entity-framework-6,C#,.net,Linq,Entity Framework 6,我使用EF linq查询电影记录可以有许多评论: var movieSummaries = _db.Movies.AsNoTracking().Select(l => new MovieSummary { Name = l.Name, Rating = l.Reviews.OrderByDescending(r => r.Date).First().ReviewTe

我使用EF linq查询
电影
记录可以有许多
评论

var movieSummaries = _db.Movies.AsNoTracking().Select(l => new MovieSummary
            {
                Name = l.Name,                
                Rating = l.Reviews.OrderByDescending(r => r.Date).First().ReviewText
            });

但是,我不需要先订购日期,我只需要最新日期的审查。有没有更优化的方法呢?

您可以尝试使用linq aux变量,与max date reviews进行比较

大概是这样的:

var moviesSumaries = from m in Movies
let Rating = m.Reviews.FirstOrDefault(d => .Date==m.Reviews.Max(s=>s.Date))?.ReviewText        
          select new {m.Name, Rating};
如果需要,也可以使用lambda表达式


就个人而言,我认为你的降序使用顺序是正确的。始终取决于场景、表中的行数、db索引等。

我认为您的评论将按日期顺序检索。因此,在这种情况下,您可以使用
.Last()