私はいくつかのlinq to sqlコードを持っています。次のように for ループとして実行すると、基になるデータベースが更新されます。
Dim myDC As MyDataClassDataContext = New MyDataClassDataContext
Dim processThese As List(Of rec) = (From k In myDC.recs Where k.didSomeStuff = false select k).toList
For Each o As rec In processThese
'do some stuff
o.didSomeStuff= True
myDC.SubmitChanges()
Next
しかし、このように実行した場合はそうではありません
Dim myDC As MyDataClassDataContext = New MyDataClassDataContext
While (From k In myDC.recs Where k.didSomeStuff = False Select k).Count > 0
Dim o as Rec = (From l in myDC.recs where l.didSomeStuff=false select l).first
'do some stuff
o.didSomeStuff=true
mydc.submitchanges()
end while
この理由は何でしょうか?linq をスローする while ループについて何かありますか?