使用GroupBy()时,虽然指定了includes,但未加载navigation属性

时间:2016-06-20 07:30:19

标签: c# linq-to-entities entity-framework-6 navigation-properties

我正在使用Entity Framework Code First来建模具有1-1关系的2个实体:

public class ElementRevision
{
    public virtual int Id { get; set; }
    public virtual int ElementId { get; set; }
    public virtual string Description { get; set; }
    public virtual ElementRevisionExtents ElementRevisionExtents { get; set; }
    public DateTime CreatedOn { get; set; }
}

public class ElementRevisionExtents
{
    public virtual ElementRevision ElementRevision { get; set; }
    public virtual double MinX { get; set; }
    public virtual double MinY { get; set; }
    public virtual double MaxX { get; set; }
    public virtual double MaxY { get; set; }
}

我想搜索ID为1,2或3的ElementRevision,并仅采用与唯一修订版ID相关联的最后一个修订版。根据我的业务规则,这是我正在使用的查询和ElementRevisions:

_context.Set<ElementRevision>()
    .Include(x => x.ElementRevisionExtents)
    .Where(x => new [] { 1, 2, 3 }.Contains(x.Id))
    .GroupBy(x => x.ElementId)
    .Select(x => x.OrderByDescending(s => s.CreatedOn).FirstOrDefault())
    .ToArray();

问题是结果不会导致ElementRevisionExtents属性,它为空。 Here被描述为相关问题。

如何重写此内容以查找填写的导航属性?

0 个答案:

没有答案