Я выполняю операцию объединения в LINQ для двух таблиц, но большую часть времени занимает выполнение для небольшого набора данных. Ниже запроса LINQЭффективный запрос соединения в LINQ
for (int i = 0; i <= 200; i++)
{
var test = from r1 in dtRowForNode.AsEnumerable()
join r2 in dtFileRowForNode.AsEnumerable()
on r1.Field<int>("Lng_Upload_Id") equals r2.Field<int>("Lng_Upload_Id")
where ((r1.Field<string>("Txt_Called_Number") == "999") || r1.Field<string>("Txt_Calling_Number") == "888")
select r2.Field<string>("Txt_File_Name");
string[] str = test.Distinct().ToArray();
}
Вот у меня есть два DataTables dtRowForNode
, что имеет около 7500 строк и другой является dtFileRowForNode
, который имеет только 12 строк.
Теперь я собираюсь выполнить цикл этого запроса 200 раз, для завершения цикла for требуется почти 6-7 секунд. Почему это занимает столько времени для такого небольшого набора данных.
Должен ли я писать это по-другому?
Вы действительно нуждаетесь в 'AsEnumerable()'? –
@MatthewWatson Я не мог получить вашу точку зрения! –
AsEnumerable() проходит через каждый элемент и добавляет его в переменную Enumerable. –