不能包括選定父的過濾子集。你只能包括完整的收集或沒有任何兒童收藏。如果您想查詢孩子的,包括他們的父母(在評論質疑有關)
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
。
我可以查詢孩子幷包含父母嗎? – Greg 2011-04-14 17:00:25
@greg:請參閱我的答案中的編輯。 – Slauma 2011-04-14 17:27:50
感謝您的更新 - 我試着查詢OwnerOccupierDetails實體並將其過濾到我需要的實體。直到您保存實體時才能正常工作,因爲它需要它的父項並導致數據庫中存在引用錯誤。我要重試你的代碼以上... – Greg 2011-04-16 13:24:56