我想基於從web應用程序加載到數據表中的輸入csv文件在SQL表上執行插入/更新/刪除操作。目前,我使用DataSet來執行CRUD操作,但想知道在DataSet上使用LINQ會有什麼優勢。我假設代碼會減少和更強類型,但不知道如果我需要切換到LINQ。任何輸入讚賞。更新表:數據集或LINQ
編輯
這不是批量操作,CSV可能包含200個記錄最大。
我想基於從web應用程序加載到數據表中的輸入csv文件在SQL表上執行插入/更新/刪除操作。目前,我使用DataSet來執行CRUD操作,但想知道在DataSet上使用LINQ會有什麼優勢。我假設代碼會減少和更強類型,但不知道如果我需要切換到LINQ。任何輸入讚賞。更新表:數據集或LINQ
編輯
這不是批量操作,CSV可能包含200個記錄最大。
我用的是LumenWorks CSV reader,它非常快。它有自己的API來提取數據,使用IDataReader接口。這是一個來自codeplex.com的簡單示例。我將它用於我所有的CSV項目,因爲它在讀取CSV數據時速度非常快。我很驚訝它實際上有多快。
如果您想從這樣的讀者那裏得到答案,那麼您本質上是從數據讀取器API開始的,因此可能更容易使用數據表(您可以創建一個與結果集相匹配且易於使用的DataTable將數據通過匹配列複製到列)。
對於LINQ來說,很多更新可能會比較慢,這取決於您是使用實體框架還是其他方法,以及您使用的是什麼風格。一個DataTable,恕我直言,可能會更快。我遇到了LINQ問題,並且使用很多對象來更改跟蹤(如果您正在使用附加實體,而不是使用POCO)。我從Lumenworks獲取CSV文件並將其複製到DataTable中的表現相當不錯。
一旦你決定做錯了,多麼傾向於無關緊要。你應該讓你的dbms來做到這一點。 –
如果數據庫是SQL Server,則可以將SSIS用於批量操作,例如。 – flup
@TonyHopkinson,它是對現有應用程序的修改。所以我受限於我可以在這裏使用的技術。我知道SSIS是理想的選擇,但這不是一個選擇。由於它的SQL Server 2005,我甚至無法傳遞表參數。 – Sunny