EF以1-M关系拉出参考主键

时间:2010-03-03 04:42:00

标签: c# .net entity-framework relational

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

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

但是我想知道是否有类似的方法从1中抽出多个ID而不进行另一次查询?

干杯 安东尼

1 个答案:

答案 0 :(得分:1)

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

当您加载this时,EF会自动加载包含this的表中的所有数据。它在任何其他表中都不JOIN

加载Parent时,包含子ID的数据位于另一个DB表中。因此,除非您告诉EF加载它,否则在其他表中不会JOIN

因此,如果您知道在加载Parent时需要“子”ID,则可以急切加载:

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
        };