Effectuer des mises à jour directes avec LINQ sans requêtes de sélection
LINQ permet une approche plus efficace de la manipulation de bases de données en utilisant l'exécution différée. En particulier, il prend en charge les mises à jour directes sans nécessiter que les instructions SELECT récupèrent explicitement les données.
Pour y parvenir, LINQ peut générer des commandes de mise à jour basées uniquement sur les modifications que vous apportez aux objets d'entité. Prenons l'exemple suivant :
using System; using System.Linq; using System.Data.Linq; namespace LinqUpdateDemo { class Program { static void Main(string[] args) { // Create a DataContext DataContext dc = new DataContext(); // Attach an entity to the DataContext Foo foo = new Foo { FooId = 1 }; dc.Foos.Attach(foo); // Modify the entity foo.Name = "Updated Name"; // Submit the changes without a SELECT query dc.SubmitChanges(); } } public class Foo { public int FooId { get; set; } public string Name { get; set; } } }
Dans cet exemple, l'expression LINQ génère une commande de mise à jour directement dans la base de données sans exécuter de requête SELECT. Ceci est rendu possible par :
Lors de l'appel de SubmitChanges(), LINQ génère une commande SQL UPDATE basée sur les modifications apportées à l'objet foo :
UPDATE Foos SET Name = 'Updated Name' WHERE FooId = 1
Lorsque vous travaillez avec LINQ, n'oubliez pas que la récupération de données et la modification sont des étapes distinctes. Cela permet des opérations efficaces en évitant les transferts de données inutiles vers le client.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!