在 1-M 关系中,在关系的许多方面,我可以提取父项的 Id,而无需使用以下内容进行其他查询:
this.ParentReference.EntityKey.EntityKeyValues[0].Value
但是我想知道是否有类似的方法可以从 1 中提取许多 ID 而无需进行其他查询?
干杯安东尼
在 1-M 关系中,在关系的许多方面,我可以提取父项的 Id,而无需使用以下内容进行其他查询:
this.ParentReference.EntityKey.EntityKeyValues[0].Value
但是我想知道是否有类似的方法可以从 1 中提取许多 ID 而无需进行其他查询?
干杯安东尼
不,除非你急切地加载(或投影)关系。
当您加载this
时,EF 会自行加载包含this
. 它不在JOIN
任何其他表中。
加载Parent
时,包含子 ID 的数据位于另一个数据库表中。因此,除非您告诉 EF 加载它,否则它不会JOIN
在另一个表中。
因此,如果您知道在加载时需要“子”ID,则可以预先Parent
加载:
var p = Context.Parents.Include("Children").Where(p => p.Id == id).First();
...或项目:
var q = from p in Context.Parents
where p.Id == id
select new
{
Parent = p,
ChildIds = from c in p.Children
select c.Id
};