簡體   English   中英

如何在C#中從數據表向列表插入大量行

[英]How to insert large number of rows from a datatable to a list in C#

我在C#中遇到了一個數據表,其中包含大約8-10k行。

我需要將這些行插入對象列表。 現在,我正在一步一步地進行操作,但是插入和顯示它顯然需要花費很多時間。

有可能以更快的方式做到這一點嗎?

var resultList = aggResults.ExtractRows(row => new ActivitySummaryGrouped
{
    TimeSlot = row.Field<DateTime>("timestamp").ConvertUtcTimeToMountainTime(),
    Product = row.ExtractItemOrDefault(QueryField.Product.ToString(), product),
    Client = row.ExtractItemOrDefault(QueryField.Client.ToString(), client),
    Host = row.ExtractItemOrDefault(QueryField.Host.ToString(), host)

});

沒有錯誤,但是將大量數據從Datatable插入到List會花費很多時間。

我們沒有使用實體框架。 我們正在從彈性搜索中獲取數據。 我可以實現用於顯示數據的分頁,但是由於我們需要對當前數據行的總數進行平均值,總數和其他計算等操作,因此無法使用相同的值。 ExtractRows是一種擴展方法,如下所示:

public static List<T> ExtractRows<T>(this DataTable data, Func<DataRow, T> fieldExtractor)
{
   var resultIterator = data.AsEnumerable();
   return resultIterator.Select(fieldExtractor).ToList();
}

前端是Angular JS,我們將數據顯示在網格中。

我們稱還有另一種方式是ADO.NET的斷開連接的體系結構。 我們使用的是DataReader,而不是DataAdapter。 一次拉出對象時,您將存儲在Javascript對象中。 此外,您可以使用JQuery庫在javascript對象中填充數據流。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM