【问题标题】:Entity Linq query to get the parent of a parent实体 Linq 查询以获取父级的父级
【发布时间】:2014-09-23 20:26:36
【问题描述】:

获取实体中父级的父级的正确(也是最有效的)LINQ 查询是什么。

例如:

一个人有许多脚,它们有许多脚趾,它们都通过关键的关系连接起来。

给定脚趾ID,我可以很容易地找到脚,因为脚趾会有一个footID 字段,而脚会有一个personID 字段。如何将这两个查询合并为一个查询?

(我更喜欢 Linq 作为 lambda 函数,但查询语言也可以)

【问题讨论】:

  • 目前有代码吗?
  • 如果您使用的是 EF,那么每个 Toe 都有一个 Foot 属性,每个 Foot 都有一个 Person 属性。您只需查询Toes 集合和Include Foot.Person
  • 大卫,我目前的方法是简单查询父母,然后查询父母父母。两个简单的 Where 查询。
  • jmcilhinney,EF 代理属性不可等待,因此不是异步的。如果可以的话,我想保持我的数据库查询异步。

标签: vb.net linq entity-framework


【解决方案1】:
var person = people.Single(x => x.PersonId == feet.Single(y => y.FootId == toe.FootId).PersonId);

【讨论】:

  • 我考虑过这样做,但嵌套查询对我来说听起来是个坏主意。这不会本质上映射到两个 sql 查询吗?
  • 我似乎生成了一个查询,尽管它使用子查询而不是连接,但我确信数据库会有效地利用它。无论如何,这是一次往返。
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多