Heim >Datenbank >MySQL-Tutorial >Kann LINQ direkte SQL-Updates durchführen, ohne zuerst Daten auszuwählen?

Kann LINQ direkte SQL-Updates durchführen, ohne zuerst Daten auszuwählen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 05:26:17927Durchsuche

Can LINQ Perform Direct SQL Updates Without Selecting Data First?

Direkte Aktualisierungen mit LINQ ohne Select

Wenn Sie direkt mit SQL arbeiten, können Sie Aktualisierungsbefehle mit Bedingungen generieren, ohne eine Select-Anweisung auszuführen. In LINQ besteht das übliche Muster darin, Entitäten auszuwählen, sie zu ändern und die Änderungen zu übermitteln. Ist es jedoch möglich, eine direkte Aktualisierung mithilfe von LINQ und verzögerter Ausführung durchzuführen, ohne Daten an den Client zu übertragen?

Die bereitgestellte LINQ-Abfrage versucht, eine direkte Aktualisierung durchzuführen, enthält jedoch eine Auswahlklausel. Während LINQ über alle Informationen verfügt, die zum Generieren eines Aktualisierungsbefehls erforderlich sind, gibt es in LINQ kein „set“-Schlüsselwortäquivalent.

Lösung:

So erstellen Sie direkte Aktualisierungsanweisungen mit LINQ-to-SQL:

  1. Erstellen Sie ein Objekt und legen Sie seinen Schlüssel fest Eigenschaften:
Foo foo = new Foo { FooId = fooId };
  1. Hängen Sie das Objekt an den Kontext an:
context.Foos.Attach(foo);
  1. Legen Sie die Eigenschaften fest, die Sie aktualisieren möchten:
foo.Name = "test";
  1. Senden Sie die Änderungen:
context.SubmitChanges();

Hinweis:

  • Stellen Sie sicher, dass die UpdateCheck-Eigenschaft für alle Eigenschaften in Ihrer DBML auf „Nie“ eingestellt ist.
  • Um eine Eigenschaft auf Null zu setzen, initialisieren Sie das Objekt mit einem Wert ungleich Null (z. B. Name="###").
  • Um während der Aktualisierung nach einem Zeitstempel zu suchen, setzen Sie die UpdateCheck-Eigenschaft der Modified-Eigenschaft in Ihrer Dbml auf „Immer.“

Das obige ist der detaillierte Inhalt vonKann LINQ direkte SQL-Updates durchführen, ohne zuerst Daten auszuwählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn