0
在我的web api中,我需要從linq查詢本身執行一個方法。我的linq查詢代碼片段所屬的方法如下所示,它調用本地方法來獲取所需的數據。如何從linq查詢調用本地方法
var onlineData = (from od in db.RTLS_ONLINEPERSONSTATUS
let zoneIds = db.RTLS_PERSONSTATUS_HISTORY.Where(p => p.person_id == od.PERSONID).OrderByDescending(z => z.stime > startOfThisDay && z.stime < DateTime.Now).Select(z => z.zone_id).ToList()
let zoneIdsArray = this.getZoneList((zoneIds.ToArray()))
let fzones = zoneIdsArray.Select(z => z).Take(5)
select new OnlineDataInfoDTO
{
P_ID = od.PERSONID,
T_ID = (int)od.TAGID,
LOCS = fzones.ToList()
}
public int[] getZoneList(decimal[] zoneIdsArray)
{
int[] zoneIds = Array.ConvertAll(zoneIdsArray, x => (int)x);
List<int> list = zoneIds.ToList();
for (int c = 1; c < zoneIdsArray.Count(); c++)
{
if (zoneIdsArray[c] == zoneIdsArray[c - 1])
{
list.Remove((int)zoneIdsArray[c]);
}
}
return list.ToArray();
}
我正在逐漸讓zoneIdsArray = this.getZoneList異常((zoneIds.ToArray())),有沒有什麼辦法來解決這個問題。我有邏輯來解決我的問題從這個鏈接(Linq query to get person visited zones of current day),給定的邏輯是絕對正常的我的要求,但我在執行它時遇到問題。
感謝ü這麼多達林Dimtrov,你解決我的問題,我覺得很難做到非常感謝 –