0

私はいくつかの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 ループについて何かありますか?

4

1 に答える 1