ObservableCollection(Of T) zurück in DB schreiben mit LINQ
-
Freitag, 4. Januar 2013 12:37
Hallo zusammen,
ich hätte da eine Frage und zwar geht es darum das ich ein Programm mit der WPF schreibe. Dort erstelle ich mir ObservableCollection(Of ) an die ich die Elemente binde. Das klappt auch alles, ganz gut, doch was mir noch nicht klar ist, wie ich die Collection mit den Änderungen wieder zurück in die DB schreiben kann.
Als Beispiel:
Ich erstelle eine neue Collection und fülle sie mit einer LINQ-Abfrage
Public Material As ObservableCollection(Of MaterialBedarf) Private Sub Window_Loaded_1(sender As Object, e As RoutedEventArgs) Dim Abfrage = From m In db.MaterialBedarf Where m.MB_ID = _id Select m Material = New ObservableCollection(Of MaterialBedarf)(Abfrage) 'Abfrage der ListBox übergeben lbMaterial.DataContext = Material End SubIch binde dann die TextBoxen alle an die ListBox
<ListBox Grid.Column="1" Grid.Row="8" Grid.ColumnSpan="4"
Name="lbMaterial" ItemsSource="{Binding}" DisplayMemberPath="MB_Name"
IsSynchronizedWithCurrentItem="True" MinWidth="20" />
<TextBox Grid.Column="7" Grid.Row="2" Text="{Binding SelectedItem.MB_Menge,
ElementName=lbMaterial, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <TextBox Grid.Column="7" Grid.Row="4" Text="{Binding SelectedItem.MB_Info,
ElementName=lbMaterial, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <Image Grid.Column="6" Grid.Row="8" Grid.ColumnSpan="2" Name="IMG"
Source="{Binding }" />Beim einfügen oder entfernen eines Eintrages erstelle ich Objekt
Material.Add(Objekt)
oder
Material.Remove(Objekt)Und jetzt kommt mein Problem, denn ich weiß nicht wie ich jetzt per LINQ die Collection der DB übergeben kann
Wenn mir jemand eine Idee hätte wäre ich echt froh
Vielen Dank schonmal vorweg
Grüßle
Jo
- Verschoben Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 18. Januar 2013 14:53 WPF
Alle Antworten
-
Sonntag, 6. Januar 2013 16:37
Hi Joachim,in der ObservableCollection werden die Verweise die Datenobjekte gehalten. Die Datenobjekte werden vom Context (bei Dir “db”) bereitgestellt, der auch Zugriff aus die Zustände der Datenobjekte hat. Der Context hat auch eine Methode zum Speichern (z.B. SaveChanged). Diese Methode erkennt an Hand der Zustande, was mit der externen Datenbank zu machen ist (DELETE, INSERT, UPDATE).Zu beachten ist aber, dass ein Remove das Dateobjekt lediglich aus der Liste in der Anwendung entfernt und auf die externe Datenbank keine Auswirkung hat. Wenn in der externen Datenbank ein Datensatz zu löschen ist, dann muss das entsprechende Datenobjekt in der Anwendung mit der Delete-Methode für das spätere Löschen gekennzeichnet werden.--
Peter Fleischer- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 18. Januar 2013 14:39
-
Montag, 7. Januar 2013 09:56
Hallo Peter,
ich Danke dir für deine Hilfe, ich habe es jetzt so gemacht dass ich beim löschen eines Datensatzes
ich den überdb.MaterialBedarf.Remove(Objekt)
db.SubmitChangesentfernt habe.
Grüßle Jo
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 18. Januar 2013 14:38

