EntityFramework更新多條資料 8萬

2022-02-28 09:47:43 字數 1347 閱讀 8737

此文主要用做記錄用:

原因:資料庫遷移,需要轉換大量使用者資料,兩資料某欄位加密方式不一致需要批量轉換

注:轉換程式用了entityframework

過程:1.讀取所有需要轉換資料至list

2.採用parallel.foreach對list進行批次資料轉換

3.將轉換後的list資料按一定數量進行分割為list>

4.建立list>相應數量task陣列

5.採用task.run建立寫入資料庫action

5.執行所有task,指令為task.waitall(tasks);

總結:主要是針對寫入資料庫進行多執行緒方式處理,讀取目前還能忍受,當時用foreach一筆筆寫入程式直接假死,半天沒反應,後採用多執行緒寫入,效果非常明顯

附**如下:

listquery;

stopwatch watch = new

stopwatch();

watch.start();

using (databaseconext db = new

databaseconext())

watch.stop();

messagebox.show(string.format(

"讀取使用秒數:

", watch.elapsed.totalseconds));

watch.restart();

parallel.foreach

(query, p =>);

watch.stop();

messagebox.show(string.format(

"轉換使用秒數:

", watch.elapsed.totalseconds));

watch.restart();

list

> users = new list>();

int splitcount = 1000

;while

(query.any())

task tasks = new

task[users.count()];

for (int ctr = 0; ctr < users.count(); ctr++)

", thread.currentthread.managedthreadid));

});}

});}task.waitall(tasks);

watch.stop();

messagebox.show(string.format(

"分割及儲存使用秒數:

", watch.elapsed.totalseconds));

messagebox.show("完成

");

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...