Maison > base de données > tutoriel mysql > LINQ peut-il effectuer des mises à jour SQL directes sans instructions Select ?

LINQ peut-il effectuer des mises à jour SQL directes sans instructions Select ?

DDD
Libérer: 2024-12-20 10:31:10
original
912 Les gens l'ont consulté

Can LINQ Perform Direct SQL Updates Without Select Statements?

Mises à jour directes avec LINQ : contourner les instructions Select

Lorsque vous travaillez avec SQL, des mises à jour directes sans instructions select peuvent être créées à l'aide de conditions. Avec LINQ, le modèle courant consiste à sélectionner des entités, à les modifier et à soumettre les modifications.

Cependant, que se passe-t-il si vous souhaitez exécuter des mises à jour directes à l'aide de LINQ et différer l'exécution ? Est-il possible d'éviter de transmettre des données au client et de faire exécuter directement le SQL ?

La réponse est oui. LINQ-to-SQL peut générer des instructions de mise à jour sans avoir besoin d'une instruction select. Ceci peut être réalisé en attachant un objet avec des valeurs clés au contexte et en modifiant ses propriétés.

Par exemple :

Foo foo = new Foo { FooId = fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name = "test";
context.SubmitChanges();
Copier après la connexion

En définissant UpdateCheck="Never" pour toutes les propriétés du Dbml fichier, une seule instruction de mise à jour sera générée sans sélectionner d'abord l'entité d'origine.

Une mise en garde à noter est que si vous souhaitez définir une propriété sur null, vous devez initialiser l'objet avec une valeur différente pour permettre à LINQ de détecter le changement. Par exemple :

Foo foo = new Foo { FooId = fooId, Name = "###" };
...
foo.Name = null;
Copier après la connexion

De plus, vous pouvez vérifier un horodatage lors de la mise à jour en définissant la propriété sur UpdateCheck="Always" dans le fichier Dbml. Cela garantit que l'instruction de mise à jour inclut une condition basée sur la valeur d'horodatage.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal