C# DB上下文查询,其中值是实体列表

C# DB上下文查询,其中值是实体列表,c#,entity-framework,linq,C#,Entity Framework,Linq,我试图在dbcontext上使用ToDictionaryAsync方法,但不知道如何为字典指定它们的值 由于性能原因,我需要拉入主表及其一些关系,并在该集合上工作。后来为了加快速度,我想一本字典会有所帮助。我希望你们中的一位知道如何使用Linq实现这一点 我现在得到的是: var entitlements = await context.DbSet //<y> // the value for the dictionary later on .Include(e =>

我试图在dbcontext上使用ToDictionaryAsync方法,但不知道如何为字典指定它们的值

由于性能原因,我需要拉入主表及其一些关系,并在该集合上工作。后来为了加快速度,我想一本字典会有所帮助。我希望你们中的一位知道如何使用Linq实现这一点

我现在得到的是:

var entitlements = await context.DbSet //<y> // the value for the dictionary later on
    .Include(e => e.E)
    .Include(et => et.E.Et)
    .Include(eam => eam.E.Eam)
    .ToDictionaryAsync(x => x.ForeignKey, y => y);
var-entitlements=await-context.DbSet///稍后字典的值
.包括(e=>e.e)
.包括(et=>et.E.et)
.包括(eam=>eam.E.eam)
.ToDictionaryAsync(x=>x.ForeignKey,y=>y);
我现在的问题是‘y’(在字典构造函数中)是‘y’的单数实体,我需要的是一个列表,因为外键映射到可能很多值


我真的希望在不填充集合并再次迭代它的情况下执行此操作

使用ToLookup()。正如卡拉所说,最好的方法是ToLookup()。group by也可以。这是哪个EF版本?Entity Framework Core 2.1是否可以从
y
引用的实体开始查询?这会给你一个自然独特的分组。