Hi,
ich versuche mich gerade an einem etwas größeren Projekt, in welchem verschiedene Benutzer verschiedene Projekte anlegen können, welche verschiedene verlinkte Tabellen haben. Das ganze wird von eine REST-Api betrieben, also es wird jedes Mal ein neuer DbContext erstellt (die Entries werden nicht getrackt).
Jetzt wäre meine Frage, wie man es am besten macht, eine ungetrackte Entity zu aktualisieren und gleichzeitig zu gewährleisten, dass die Entity auch dem Benutzer gehört. Ich weiß vorher, dass das Projekt xyz dem Benutzer gehört und eigentlich sollte auch die aktualisierte Entity dem Benutzer gehören, aber ich muss ja trotzdem die ID überprüfen, sonst könnte der Benutzer ja jede Entity aktualisieren. In MySQL würde ich jetzt so eine Query erstellen:
Es wird überprüft, ob das Projekt zu der Entity gehört und nur dann die Entity aktualisiert. Das ist eine schöne Query, die alles wichtige beinhaltet und relativ gut performen sollte.
In EF Core würde ich jetzt sowas hier machen:
Aber das führt ja zwei Befehle aus, einmal den
ich versuche mich gerade an einem etwas größeren Projekt, in welchem verschiedene Benutzer verschiedene Projekte anlegen können, welche verschiedene verlinkte Tabellen haben. Das ganze wird von eine REST-Api betrieben, also es wird jedes Mal ein neuer DbContext erstellt (die Entries werden nicht getrackt).
Jetzt wäre meine Frage, wie man es am besten macht, eine ungetrackte Entity zu aktualisieren und gleichzeitig zu gewährleisten, dass die Entity auch dem Benutzer gehört. Ich weiß vorher, dass das Projekt xyz dem Benutzer gehört und eigentlich sollte auch die aktualisierte Entity dem Benutzer gehören, aber ich muss ja trotzdem die ID überprüfen, sonst könnte der Benutzer ja jede Entity aktualisieren. In MySQL würde ich jetzt so eine Query erstellen:
Es wird überprüft, ob das Projekt zu der Entity gehört und nur dann die Entity aktualisiert. Das ist eine schöne Query, die alles wichtige beinhaltet und relativ gut performen sollte.
In EF Core würde ich jetzt sowas hier machen:
Aber das führt ja zwei Befehle aus, einmal den
SELECT
Befehl und dann nochmal den UPDATE
Befehl in SaveChanges();
. Kann man das irgendwie verbessern oder muss man das hier in Kauf nehmen für den Comfort? (oder macht man hier einfach die SQL Abfrage mit dem EF?)