0

在 1-M 关系中,在关系的许多方面,我可以提取父项的 Id,而无需使用以下内容进行其他查询:

this.ParentReference.EntityKey.EntityKeyValues[0].Value

但是我想知道是否有类似的方法可以从 1 中提取许多 ID 而无需进行其他查询?

干杯安东尼

4

1 回答 1

1

不,除非你急切地加载(或投影)关系。

当您加载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
        };
于 2010-03-03T13:11:01.883 回答