ルートの量のデータと座標を返すこの LINQ クエリがあります。座標の量が特定の値を超えた場合、次のルートの座標を除外したいと考えています。
これは私がこれを行おうとする私の方法です。問題は、オブジェクトをシリアライズしようとすると、JSON.net シリアライズがタイムアウトすることです。
public static object returnFullSelectWithCoordinates(IQueryable<RouteQueryModel> r)
{
int totalCoordinateCount = 0;
foreach (route x in r.Select(c => c.b))
{
if (totalCoordinateCount > DataValues.AmountOfCoordinates)
{
x.coordinates.Clear();
}
else
{
totalCoordinateCount += x.coordinates.Count;
if (totalCoordinateCount > DataValues.AmountOfCoordinates)
{
x.coordinates.Clear();
}
}
}
return r.Select(b => new
{
route_id = b.b.route_id,
name = b.b.name,
description = b.b.description,
distance = b.b.distance,
distance_to_route = (int)b.distance_to_from_me,
departure_place = b.b.departure_place,
arrival_place = b.b.arrival_place,
owner = b.b.user.username,
average_rating = b.avg_rating,
is_favorite = b.is_favorite,
date = b.b.date,
attributes = b.b.route_attributes.Select(c => c.route_attribute_types.attribute_name),
coordinates = b.b.coordinates.Select(c => new coordinateToSend { sequence = c.sequence, lat = c.position.Latitude, lon = c.position.Longitude })
});
}