我正在使用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被描述为相关问题。
如何重写此内容以查找填写的导航属性?