我有一個Person對象,它有一個Reports列表。如何循環多次SQL結果中的行
在我的數據層中,我想使用2個SQL查詢來創建Person對象並將它們添加到列表中。我卡住的地方是 - 如何循環的次數與SQL 1的SQL結果中的行數一樣多。
每一行都應該保存爲新的Person對象並添加到列表中。
List<Person> personList = new List<Person>();
//SQL 1 - loop as many times as there are results, each loop adding a new Person to list
{
personList.Add(_context.Database.SqlQuery<Person>(
@"SELECT id_txt AS IdNum
, lastname_txt AS LastName
, LOCATION_FLG AS LocFlag
FROM fn_PersonList(@locationId)",
new SqlParameter("@locId", locID)
).Single());
}
// second sql query to add Report list to the already created Person list
foreach (Person t in personList)
{
i++;
personList[i].Reports.Insert(i,
_context.Database.SqlQuery<Report>(
@"SELECT ID_NUM
, RECEIVED_DTE
, SUBJECT_TXT
FROM fn_Work_Person(@pdNumber, t)
WHERE LocID = & locationID
ORDER BY ID_NUM DESC",
new SqlParameter("@locationId", locationID)).Single());
}
return personList;
'_context.Database.SqlQuery()'的返回類型是什麼?它是'List '還是'IEnumerable '?如果是這樣,你可以做'personList = _context.Database.SqlQuery (...)。ToList()'? –
Quantumplate
ToList是答案!謝謝Quan – Dawson
你也可以嘗試使用personList.AddRange(...沒有ToList()。 –