Соедините две таблицы, используя linq, и заполните их словарь

Я искал, как объединить две таблицы (Data и DataValues, одна ко многим) и заполнить словарь типа.

Записи данных могут быть тысячами (например, 500 000 или более), и каждый Data может иметь от 10 до 20 DataValues, что делает запрос намного более тяжелым, поэтому производительность здесь действительно важна.

вот код, который я пишу:

// Passed via the arguments, for example, sensorIDs would contain:
int[] sensorIDs = { 0, 1, 2, 3, 4, 5, 6, 17, 18 };
Dictionary<Data, List<DataValue>> dict = new Dictionary<Data, List<DataValue>>();

foreach (Data Data in dt.Datas)
{
    var dValues = from d in dt.Datas
                        join dV in dt.DataValues on d.DataID equals dV.DataID
                        where (SensorIDs.Contains(dV.SensorID))
                        select dV;
    dict.Add(Data, dValues.ToList<DataValue>());
}

Но этот подход имеет значительные проблемы с производительностью и требует много времени для выполнения. Не уверен, что мне нужно использовать SQL Views. какие-либо предложения?

Ответы на вопрос(3)

Ваш ответ на вопрос