gpt4 book ai didi

c# - 使用表达式在 EF4 中渴望加载多对多?

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:41 25 4
gpt4 key购买 nike

我有两个实体:GrmDeploymentAttemptGrmDeploymentStep。这些实体通过中介 POCO GrmDeploymentAttemptStep 建立多对多关系,POCO 包含有关实际多对多关系的附加信息。

我正在尝试通过预先加载加载包含所有步骤信息的尝试,所以现在我有以下代码:

        var attempt = _context.GrmDeploymentAttempts
.Where(x => x.Id == attemptId)
.Include(x => x.AttemptSteps)
.FirstOrDefault();

问题是这种预先加载中间表,但不预先加载步骤表。我如何使用带有表达式的 Include() 来预先加载我的 Step 实体?使用 Include(string) 方法我可以执行 Include("AttemptSteps.Steps") 但我不确定如何使用表达式执行此操作。

请注意,我知道我可以改为加载 AttemptSteps 实体并从那里提前加载,但在某些情况下我无法执行此操作,我一直想知道如何处理这个。

最佳答案

var attempt = _context.GrmDeploymentAttempts
.Where(x => x.Id == attemptId)
.Include(x => x.AttemptSteps.Select(a => a.Step))
.FirstOrDefault();

Include(...Select(...)) 通常加载子集合的导航属性。

关于c# - 使用表达式在 EF4 中渴望加载多对多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532871/

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