从 db 集到字典

本文关键字:字典 db | 更新日期: 2023-09-27 18:36:33

我有一个

DbSet<People>

我正试图把它变成一个

Dictionary<int, List<People>>

我的班级是

public People
{
     public int Id { get; set; }
     public string Name { get; set; }
     public int Age { get; set; } //this is key of dictionary
}

我想按年龄分组。因此,年龄将是列出同龄人名单的关键。这是获取我的列表的电话

var items = db.People.ToList();

我正在尝试使用ToDictionary方法,但我不确定这是否是正确的方法。似乎应该有一个 lambda 语句来实现这一点。

 Dictionary<int, List<People> myDictionary = items.ToDictionary(p => p.Age, p => People);

从 db 集到字典

您必须先使用GroupBy

var myDictionary = items.GroupBy(p => p.Age)
                        .ToDictionary(g => g.Key, g => g.ToList());

您也可以直接在上下文中执行此操作,将分组移动到数据库中,而不是在应用程序中执行它:

var myDictionary = db.People.GroupBy(p => p.Age)
                        .ToDictionary(g => g.Key, g => g.ToList());