【问题标题】:Linq Enity Framework, select from collection within IQueryable navigation propertyLinq 实体框架,从 IQueryable 导航属性中的集合中选择
【发布时间】:2020-06-25 02:22:06
【问题描述】:

如果您查看上面的内容,我基本上是在尝试从主表中写出一个查询。

为了节省空间,我只从上表Id中选择了一个字段,但我需要整个表。

这是我在 SQL / linq 混合格式中的粗略目标。我一直在使用.ContainsSelectMany.Any 在 linq 中玩这个,但我找不到神奇的语法。

非常感谢任何帮助。

粗略目标:

select * 
from table 
where BehaviourResourceAgeLevels.AgeLevelId = 1

编辑 谢谢@马特 您的解决方案帮助我完善了查询:

                        var ageLevels = unitOfWork.AgeLevels.AsQueryable().SelectMany(x => x.BehaviourResources)
                            .Where(x => x.Id == resourceId).ToList();

【问题讨论】:

  • 对不起,我不能完全理解你的问题,请分享你的c#代码并解释一下。

标签: asp.net entity-framework linq


【解决方案1】:

使用SelectMany

table.SelectMany(x=> x.BehaviourResourceAgeLevels).Where(x=> x.AgeLevelId == 1)

SelectMany 从集合中挑选出所有相似的属性并将它们塞入一个集合中,然后您可以进一步过滤。

【讨论】:

  • 谢谢马特!这让我克服了障碍。我更新了我的原始问题以扩展我的最终目标。这是根据您帮助我选择的值选择实体集字段。现在只选择实体集字段是我卡住的地方。任何帮助表示赞赏,再次感谢
  • 抱歉,刚刚看到这个 - 例如,如果您只想选择 BehaviorLevel,您只需附加 .Select(x=>x.BehaviorLevel)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多