如何过滤相关的子记录

| 我正在使用RIA服务。我需要选择一个具有多个相关子实体(
UnitOccupierDetails
)的父实体(
UnitOccupier
)。我需要过滤子实体以返回单个记录。我该怎么做呢?
var q = from uo in _unitOccupierContext.GetUnitOccupierQuery()
        where uo.UnitOccupierDetails.????
                                     ---> I cant get to the child properties here
谢谢     
已邀请:
您不能包括所选父项的已过滤子项集合。您只能包括完整集合或根本不包括任何子集合。但作为解决方法,您可以使用中间匿名类型,如下所示:
var q = (from uo in _unitOccupierContext.GetUnitOccupierQuery() 
         select new {
             Parent = uo,
             Childs = uo.UnitOccupierDetails
                        .Where(uod => uod.MyDetailsProp == MyDetailsValue)
         }).FirstOrDefault();

if (q != null)
{
    UnitOccupier selectedUnitOccupier = q.Parent;
    selectedUnitOccupier.UnitOccupierDetails = q.Childs.ToList();
    // selectedUnitOccupier now only contains the filtered childs
}
编辑 如果要查询孩子并包括他们的父母(与评论中的问题有关),可以使用:
var q = _unitOccupierContext.GetUnitOccupierQuery()
         .SelectMany(uo => uo.UnitOccupierDetails
                             .Where(uod => uod.MyDetailsProp == MyDetailsValue))
         .Include(uod => uod.UnitOccupier)
         .FirstOrDefault(); // or .ToList() if you expect more than one record
// q is now null or a single UnitOccupierDetails entity
// with a reference to its parent
我在这里假设您的
UnitOccupierDetails
类具有到父
UnitOccupier
的导航属性。     

要回复问题请先登录注册