[英]How can I get all the children records in a single query if I need to lookup the parent ID?
我有一個父母/子女關系的模型。 Year
和Week
Years: YearID, Name
Weeks: WeekID, YearID, Name
因此,如果我選擇YearSelected
,以獲取一年中的所有星期,則可以:
List<Week> weeks = db.weeks.Where(w => w.YearID == model.YearSelected).ToList();
model.WeekList = new SelectList(weeks, "WeekID", "Name");
但是在數據庫中,我只保存WeekID
所以只有model.WeekSelected
因此,我如何獲得模型在同一年的所有星期model.WeekSelected
我可以先查詢以獲取YearID,但是想知道是否可以在一行中完成。
int YearID = db.weeks.Where(w => w.WeekID == model.WeekSelected)
.SingleOrDefault().YearID.Value;
您將需要使用子查詢來獲取YearID
:
List<Week> weeks = db.weeks
.Where(w => w.YearID == db.weeks.First(w => w.WeekID == model.WeekSelected).YearID)
.ToList();
當您知道WeekSelected
僅匹配一行時,這將生成更簡單的SQL,不確定是否WeekSelected
性能產生影響:
List<Week> weeks = db.weeks
.Where(w => w.YearID == db.weeks.Single(w => w.WeekID == model.WeekSelected).YearID)
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.