簡體   English   中英

如果需要查找父ID,如何在單個查詢中獲取所有子記錄?

[英]How can I get all the children records in a single query if I need to lookup the parent ID?

我有一個父母/子女關系的模型。 YearWeek

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM