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ありがとう –