gpt4 book ai didi

c# - Linq to Entities Group By 那里有一些没有元素的组

转载 作者:行者123 更新时间:2023-11-30 17:27:16 25 4
gpt4 key购买 nike

模型类:

public class Video
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime ReleasedDate { get; set; }
public byte GenreId { get; set; }
public Genre Genre { get; set; }
public Classification Classification { get; set; }
public IList<Tag> Tags { get; set; }
}

public class Genre
{
public byte Id { get; set; }
public string Name { get; set; }
public IList<Video> Videos { get; set; }
}

例如,类型名称是: Action 、戏剧、喜剧和恐怖。没有喜剧和恐怖类型的视频。

查看模型类:

public class CountOfVideos
{
public string Classification { get; set; }
public int NumberOfMovies { get; set; }
}

Controller 类:

 public ActionResult Movies()
{
var movies = _context.Videos
.GroupBy(v => v.Genre.Name)
.Select(g => new CountOfVideos { Classification = g.Key, NumberOfMovies = g.Count() })
.ToList();

return View(movies);
}

查看:

@model IEnumerable<LinqTest.ViewModels.CountOfVideos>

<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Name</th>
<th>Count</th>
</tr>
</thead>
<tbody>
@foreach (var movie in Model)
{
<tr>
<td>@movie.Classification</td>
<td>@movie.NumberOfMovies</td>
</tr>
}
</tbody>

代码工作正常,但它不显示其中没有视频的流派名称。 View 生成如下内容:

行动 23戏剧15但我想生成 Action 23 Drama 15 Comedy 0 Horror 0。

最佳答案

您应该从包含所需基础数据的集合开始。在这种情况下:流派。

类似于:

 public ActionResult Movies() {
var genres = _context.Genres
.Select(g => new CountOfVideos {
Classification = g.Name, NumberOfMovies = g.Videos.Count()
})
.OrderBy(c => c.NumberOfMovies)
.ToList();

return View(genres);
}

关于c# - Linq to Entities Group By 那里有一些没有元素的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55224962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com