2009-11-25

Linq 的ROW_NUMBER() 使用 VB.NET

網路上找到不少文章!可是自已怎麼都試不出來
文章如下網址
http://bentleydavis.com/2008/11/linq-row-number-in-visual-basic-vb-net.html

真的是江湖一點訣~說穿了就不值錢了
依上面例子!想依樣畫葫盧出來!可是就是沒辦法成功
過了三個小時後才看懂!原來作者是用自己産出的STRING陣列來測試
並不是從DB拉資料出來
Public Class IncrementerZeroBased還是一樣不變
但是Linq Query 請改成



Dim query = From ii In db.Item_Inventory _
Select ii
Dim i As New IncrementerZeroBased
Return query.ToList().Select(Function(ii) New With {.NO = i.increment, _
.Loc = ii.ii_lc_ID, _
.Qty = ii.ii_Qty})


或是你要這樣寫也可以



Dim query = (From ii In db.Item_Inventory _
Select ii).ToList()
Dim i As New IncrementerZeroBased
Return query.Select(Function(ii) New With {.NO = i.increment, _
.Loc = ii.ii_lc_ID, _
.Qty = ii.ii_Qty})



各位客倌有看出來那裡不一樣嗎

沒錯!就是.ToList()
用SQL Server Profiler來觀察結果
只要用了.ToList()就會産出SQL語法
這樣剛好符合原作使用STRING陣列來測試的條件了

如果你照原作有問題的話~可以試試這個方法喔
終於搞定囉

0 comments: