Maison >base de données >tutoriel mysql >LINQ peut-il effectuer des mises à jour SQL directes sans sélectionner au préalable les données ?

LINQ peut-il effectuer des mises à jour SQL directes sans sélectionner au préalable les données ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-25 05:26:17925parcourir

Can LINQ Perform Direct SQL Updates Without Selecting Data First?

Mises à jour directes avec LINQ sans Select

Lorsque vous traitez directement avec SQL, vous pouvez générer des commandes de mise à jour avec des conditions sans exécuter d'instruction select. Dans LINQ, le modèle courant consiste à sélectionner des entités, à les modifier et à soumettre les modifications. Cependant, est-il possible d'effectuer une mise à jour directe à l'aide de LINQ et d'une exécution différée sans transmettre de données au client ?

La requête LINQ fournie tente d'effectuer une mise à jour directe, mais elle inclut une clause de sélection. Bien que LINQ dispose de toutes les informations nécessaires pour générer une commande de mise à jour, il n'existe pas d'équivalent de mot clé "set" dans LINQ.

Solution :

Pour créer des instructions de mise à jour directes à l'aide LINQ-to-SQL :

  1. Créer un objet et définir sa clé propriétés :
Foo foo = new Foo { FooId = fooId };
  1. Attachez l'objet au contexte :
context.Foos.Attach(foo);
  1. Définissez les propriétés que vous souhaitez mettre à jour :
foo.Name = "test";
  1. Soumettre le changements :
context.SubmitChanges();

Remarque :

  • Assurez-vous que la propriété UpdateCheck de toutes les propriétés de votre Dbml est définie sur "Jamais".
  • Pour définir une propriété sur null, initialisez l'objet avec une valeur non nulle (par exemple, Name="###").
  • Pour vérifier un horodatage lors de la mise à jour, définissez la propriété UpdateCheck de la propriété Modified dans votre Dbml sur "Toujours".

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