自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linq To DataTable學(xué)習(xí)筆記

開發(fā) 后端
這里介紹Linq To DataTable,包括介紹Linq已經(jīng)讓我們感覺不到Query的難點(diǎn), 它讓我們很容易的實(shí)現(xiàn)高難度的Query。

Linq 有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq To DataTable,包括介紹DataTable類型等方面。

Linq To DataTable

Linq已經(jīng)讓我們感覺不到Query的難點(diǎn), 它讓我們很容易的實(shí)現(xiàn)高難度的Query。 或許剩下的問題, 也許是很簡單的問題就是如何保存這些Query結(jié)果?

  1. var _result = DAL.Utility.SelectAll<Customer>();  
  2. var _filter =  
  3. from q in _result  
  4. where q.CustomerID.StartsWith("B")  
  5. select new  
  6. {  
  7. q.CustomerID,  
  8. q.ContactName,  
  9. q.CompanyName  
  10. }; 

_result 是搜索所有Customer的結(jié)果,_filter 是 _result 中 CustomerID 以“B”開始的{CustomerID , ContactName, CompanyName} 集合,但是這個(gè)匿名類型就沒辦法作為變量 return 給另外一個(gè)方法調(diào)用。

可能把這個(gè){CustomerID , ContactName, CompanyName} 集合反射到一個(gè)DataTable類型是比較符合一般數(shù)據(jù)庫需求的, 或許說這也是某些舊系統(tǒng)輕松插上Linq翅膀的一種方案。

下面給出Linq To DataTable的方法(某種意義上是一樣的): 

  1. public static System.Data.DataTable LinqToDataTable<T>(IEnumerable<T> data)  
  2. {  
  3. var dt = new System.Data.DataTable();  
  4. var ps = typeof(T).GetProperties().ToList();  
  5. ps.ForEach(p => dt.Columns.Add(p.Name, p.PropertyType));  
  6.  
  7. foreach (T t in data)  
  8. {  
  9. var dr = dt.NewRow();  
  10. var vs = from p in ps select p.GetValue(t, null);  
  11. var ls = vs.ToList();  
  12. int i = 0;  
  13. ls.ForEach(c => dr[i++] = c);  
  14. dt.Rows.Add(dr);  
  15. }  
  16. return dt;  
  17. }  
  18.  
  19. public static System.Data.DataTable ToDataTable<T>(IEnumerable<T> data)  
  20. {  
  21. var dt = new System.Data.DataTable();  
  22. var psSystem.ComponentModel.TypeDescriptor.GetProperties(typeof(T));  
  23. foreach (System.ComponentModel.PropertyDescriptor dp in ps )  
  24. dt.Columns.Add(dp.Name, dp.PropertyType);  
  25. foreach (T t in data)  
  26. {  
  27. var dr = dt.NewRow();  
  28. foreach (System.ComponentModel.PropertyDescriptor dp in ps)  
  29. dr[dp.Name] = dp.GetValue(t);  
  30. dt.Rows.Add(dr);  
  31. }  
  32. return dt;  

【編輯推薦】

  1. LINQ to SQL查詢分析
  2. LINQ查詢架構(gòu)簡單介紹
  3. LINQ to SQL映射關(guān)系概述
  4. LINQ To SQL對象模型淺析
  5. LINQ to SQL映射列描述
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-09-08 17:57:54

LINQ to Dat

2009-09-16 13:02:12

LINQ查詢子句

2009-09-17 16:20:43

Linq to sql

2009-09-08 09:12:12

LINQ構(gòu)建框架設(shè)計(jì)

2009-09-17 13:54:26

LINQ to XML

2010-05-11 09:09:13

DataTableLINQ

2009-09-10 17:38:04

LINQ技術(shù)

2009-09-11 12:08:09

Linq to SQL

2009-09-08 15:27:08

Linq Select

2009-09-07 17:09:45

Linq To Sql

2009-09-16 17:13:54

學(xué)習(xí)Linq

2009-09-17 13:38:42

LINQ to XML

2009-09-17 15:51:39

Linq to sql

2009-09-10 13:54:27

LINQ語法

2009-09-14 17:10:57

LINQ模糊查詢

2009-09-17 08:47:00

Linq查詢

2009-09-14 18:19:49

LINQ模糊查詢

2009-09-15 16:26:46

Linq排序

2009-09-14 20:17:05

并行LINQ

2009-09-14 16:00:51

LINQ基本操作LINQ
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)