Maison >base de données >tutoriel mysql >Comment effectuer des mises à jour SQL directes dans LINQ sans utiliser les instructions SELECT ?

Comment effectuer des mises à jour SQL directes dans LINQ sans utiliser les instructions SELECT ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-26 19:52:10464parcourir

How to Perform Direct SQL Updates in LINQ without Using SELECT Statements?

Mise à jour SQL directe avec LINQ sans Select

Dans LINQ, il est possible de générer des commandes de mise à jour SQL sans utiliser d'instruction select, permettant ainsi mises à jour sur la base de données.

Pour y parvenir, utilisez les éléments suivants approche :

  1. Créer un objet et définir ses propriétés clés :

    Foo foo=new Foo { FooId=fooId };
  2. Attacher l'objet au contexte :

    context.Foos.Attach(foo);
  3. Mettre à jour les propriétés de l'objet si nécessaire :

    foo.Name="test";
  4. Soumettre les modifications au base de données :

    context.SubmitChanges();

Par défaut, LINQ-to-SQL utilise « UpdateCheck » pour suivre les modifications dans les propriétés des objets. Le définir sur "Jamais" pour toutes les propriétés garantit que LINQ n'effectuera aucune requête de sélection pour détecter les modifications. Au lieu de cela, il génère une instruction de mise à jour directe.

Pour mettre à jour les propriétés nullables, initialisez l'objet avec une valeur non nulle pour la propriété, puis définissez-le sur null pour déclencher la mise à jour.

En outre , pour vérifier un horodatage lors des mises à jour, définissez la propriété "Modified" sur "UpdateCheck=Always" dans le modèle de base de données (dbml). Cela permet à LINQ de vérifier si l'objet a changé depuis la dernière récupération.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn