Я искал, как присоединиться к двум таблицам (Data and DataValues, от одного до многих) и заполнить словарь типа.Соедините две таблицы, используя linq, и заполните их Слова
Записи данных могут составлять тысячи (например, 500 000 и более), и каждая информация может содержать от 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-представления. какие-либо предложения?
Насколько велика ваша DataTable? – Learner
около 1200 записей в день (только для данных), и каждая информация может содержать от 5 до 18 DataValue. текущая строка таблицы «Данные» равна 125,361 – Arman
. Ваш запрос также неверен, вы должны сделать выбор на 'dt.DataValues' и включить проверку Data.DataID == dV.DataID, а также в свою 'where' – konkked