gpt4 book ai didi

c# - Linq 包括集合中的子项

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

使用 include 方法不包含集合的子项。

var abuseCaseQuery =
from @event in
context.AbuseEvents.Include("AbuseCase.AbuseCaseStatus.Status")
select new
{
@event.SecurityGroupId,
@event.AbuseCaseId,
@event.AbuseCase.AbuseCaseStatus
}
;

var abuseCases = abuseCaseQuery.ToList();

abuseCases 列表包含所有 AbuseCasesStatusStatusIdStatus 对象为空。

埃德姆:

edmx

如何填充 Status 导航属性?

最佳答案

在 EF 中,当您使用 Select 添加投影时,Includes 将被忽略。

因此,您必须明确选择所需的所有数据:

select new
{
@event.SecurityGroupId,
@event.AbuseCaseId,
@event.AbuseCase.AbuseCaseStatuses
.Select( acs => new { AbuseCaseStatus = acs, Status = acs.Status } )
}

这确实会产生一个“扁平”对象,因此您可能希望之后修复对象图:

foreach( var abuseCase in abuseCases )
{
foreach( var acs in abuseCase.AbuseCaseStatuses )
{
acs.AbuseCaseStatus.Status = acs.Status;
}
}

关于c# - Linq 包括集合中的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761477/

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