av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

LinqToDataTable學(xué)習(xí)筆記

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

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)甘孜州免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

Linq To DataTable

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

 
 
 
  1. var _result = DAL.Utility.SelectAll();
  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} 集合,但是這個匿名類型就沒辦法作為變量 return 給另外一個方法調(diào)用。

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

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

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

文章題目:LinqToDataTable學(xué)習(xí)筆記
URL標(biāo)題:http://uogjgqi.cn/article/cdodege.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流