Frage
Mit dem folgenden Code hier
Sub FooSub
Dim db As New FooDataContext
Dim u = From p In db.FooTable Where p.FooColumn = FooData Select p
Do Stuff
End Sub
Muss ich manuell eine Klasse erstellen, die Daten aus meiner FooTable abzubilden, wenn ich es will in der Anwendung bestehen bleiben? Wenn ich u als Klasse weite Variable deklarieren, dann einmal SubFoo endet, kann ich keinen Zugriff mehr auf die Daten in u
Lösung
Eigentlich u
nur IQueryable<typeof(p)>
werden. Die Datenbank wird nicht einmal getroffen werden, bis Sie versuchen, über diese Sammlung iterieren.
Wenn Sie einige Objekte bearbeiten möchten, nachdem die Datacontext-Verbindung geschlossen hat, werden Sie wollen u.ToList
aufrufen, bevor Sie die Verbindung schließen eine Liste der Ergebnisse zu erhalten.
Von dort aus können Sie die Objekte selbst ändern, wie Sie möchten. Wenn Sie Änderungen wollen in die Datenbank persistieren zurück, rufen db.SubmitChanges