跳到主要內容

發表文章

目前顯示的是有「Linq」標籤的文章

[VB.net] Linq Out Join

Dim petOwners = From pers In people Group Join pet In pets On pers Equals pet.Owner Into PetList = Group From pet In PetList.DefaultIfEmpty() Select pers.FirstName, pers.LastName, PetName = If(pet Is Nothing, String.Empty, pet.Name)

[.Net] String split to Dictionary

Linq提供很方便的方法 可以將string split成dictionary 方法如下: [VB.net] Dim Str As string="Allen$20,Betty$16" Dim v As Dictionary(Of String, Integer) = Str.Split(",").Select(Function(s) s.Split("$")).ToDictionary(Function(i) i(0), Function(i) Integer.Parse(i(1))) [C#] String Str ="Allen$20,Betty$16" Dictionary<string, int> v = Str.Split(",") .Select(s => s.Split("=")) .ToDictionary(i => i[0], i => Integer.Parse(i[1]))

[SQL][Linq] Sorting by random

有時候要隨機找出table中的幾個數值 就可以用隨機排序的方法來處理 在SQL中 可以這樣用 select [ID] from [table] order by NewID() 隨機排序 select top N  [ID] from [table] order by NewID() 隨機抓取N筆資料 在Linq上可以這樣 v=(From p In [Table]  Select p.ID) .ToList().OrderBy(Function() Guid.NewGuid).ToList() 隨機排序 v=(From p In [Table] Select p.ID) .ToList().OrderBy(Function() Guid.NewGuid).Take(n).ToList() 隨機抓取N筆資料 不過聽說Linq有以下的用法 可是我自己測試都不成功 但是大家還是可以測一下 var result = (from r in [Table] order by Guid.NewGuid() select r).Take(3) --  MySQL: SELECT column FROM table ORDER BY RAND() LIMIT 1 in PostgreSQL: SELECT column FROM table ORDER BY RANDOM() LIMIT 1 in IBM DB2 SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY in Oracle: SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1

[Linq] LINQPAD 測試LINQ的利器

在專案中使用LINQ來處理資料庫內容,在處理一般的查詢時是很有效率的事情。 可是如果查詢需要跨了好幾個table,往往沒有一個好的測試環境來確認自己寫的LINQ正不正確, 還好有人開發出了 LINQPAD 這個軟體 可以讓你在正式寫LINQ來抓資料前 可以先在上面測試一下你的LINQ語法正不正確 有興趣的人可以下載來試用看看 LINQPAD

[Linq] Linq Join

在linq中要使用Join方法如下 From p in Products join c in Category on c.poid equals p.catePoid select new With{.productName=p.Name, .cate=c.Name} 此處的join 是直接使用inner join 至於要如何使用left join,right join 就必須再建立資料物件的時候就先定要好 物件與物件的關連才可以做。 Linq Join