此文主要用做記錄用:
原因:資料庫遷移,需要轉換大量使用者資料,兩資料某欄位加密方式不一致需要批量轉換
注:轉換程式用了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 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...