У меня есть следующая структура базы данных:результаты LINQ группы и выбрать из другой таблицы
table RoadSegment
int SegmentID
double StartKm
double EndKm
table GeographicData
double Km
double latitude
double longitude
table RoadFeature
int FeatureID
int SegmentID
И я хочу, чтобы выбрать список всех особенностей дорожного движения в пределах определенного диапазона километров, но я хотел бы также к получить все географические координаты в каждый сегмент функции. Есть ли в любом случае я могу сделать это только в одной поездке в базу данных (один оператор LINQ)? Я пробовал следующее:
from feat in RoadFeature
from geo in GeographicData
join seg in RoadSegment on feat.SegmentID equals seg.SegmentID
where geo.Km >= seg.StartKm && geo.Km <= seg.EndKm
group feat by feat.FeatureID into grp
select new {
Feature = grp.Key,
GeoData = grp.ToList()
}
Но все, что я получаю, это для каждой функции список функций с тем же идентификатором. Как я могу перейти, для каждой функции, Список координат на своем сегменте? То есть, я хотел бы иметь следующий результат из запроса:
[
{
FeatureID: 1,
GeoData: [
[-11.786783, 22.4567864],
[-11.654684, 22.6546548],
[-11.646648, 22.7867544]
]
},
{
FeatureID: 2,
GeoData: [
[-11.111265, 22.4118787],
[-11.568746, 22.6546548],
[-11.124687, 22.0121571]
]
}
]
Некоторые данные:
RoadSegment
ID StartKm EndKm
41 57.6 69.4
42 69.4 80
43 80 86.5
44 86.5 92.2
45 92.2 126
46 126 132
RoadFeature
FeatureID SegmentID
1 41
2 42
3 43
4 44
5 45
6 46
GeographicData
Km latitude longitude
57.62 -19.959059 -44.339733
57.622 -19.959121 -44.339793
57.631 -19.959182 -44.339857
57.641 -19.959249 -44.339922
57.651 -19.959317 -44.339989
57.661 -19.959387 -44.340062
57.672 -19.959465 -44.340145
57.684 -19.959548 -44.340232
57.697 -19.959632 -44.340322
57.71 -19.959721 -44.340419
57.724 -19.959815 -44.340522
57.739 -19.959913 -44.34063
57.755 -19.960013 -44.340739
57.771 -19.960114 -44.340846
57.787 -19.960213 -44.34095
(Точка, есть одна особенность в сегменте, но многое гео-данных на километр. Кроме того, я хотел бы решение, которые не полагаются на уникальности функции на сегмент, если это возможно)
могли бы вы опубликовать некоторые данные? – Noctis
@Noctis да, только что отредактировал :) –