Mise à Jour en bloc avec LINQ to SQL
Est-il un moyen de faire une mise à jour en bloc sur une collection avec LINQ? Actuellement, si j'ai un List<myObject>
et je veux mettre à jour colonne1 à l'égalité de TEST pour chaque ligne dans la Liste je ferais l'installation d'une boucle foreach et puis, pour chaque objet, je voudrais définir la valeur et de l'enregistrer. Cela fonctionne bien mais je me demandais juste si il y avait une certaine méthode LINQ là où je pourrait faire quelque chose comme myOject.BulkUpdate(columnName, value)
?
Vous parlez De LINQ-to-SQL?
J'ai toujours été rétrocédés à des procédures stockées pour faire en vrac des mises à jour à l'aide de XML comme des données en vrac, mais je voudrais savoir si il est possible de LINQ.
J'ai toujours été rétrocédés à des procédures stockées pour faire en vrac des mises à jour à l'aide de XML comme des données en vrac, mais je voudrais savoir si il est possible de LINQ.
OriginalL'auteur esastincy | 2011-08-25
Vous devez vous connecter pour publier un commentaire.
Dirait que vous êtes à l'aide de LINQ to SQL, et vous avez acquis les bases énoncées déjà.
LINQ to SQL est sur le processus d'abstraction des tables dans les classes, et n'a pas vraiment d'offrir le "silver bullet" ou one-liner vous êtes à la recherche pour.
La seule façon de le faire est d'obtenir votre one-liner serait de faire une procédure stockée à prendre que le nom de la colonne et de la nouvelle valeur, et de mettre en œuvre cette logique vous-même.
Sinon, c'est comme vous le décrivez:
OriginalL'auteur p.campbell
Votre exigence ici est tout à fait possible à l'aide des expressions Linq et Terry Aney de l'excellente bibliothèque sur ce sujet.
Lot de Mises à jour et Suppressions avec LINQ to SQL
Une mise à jour dans les conditions de l'exemple que vous avez donné serait comme suit:
Modifier (2017-01-20): Il ne vaut rien ce est maintenant disponible sous la forme d'un package NuGet @ https://www.nuget.org/packages/LinqPost/.
OriginalL'auteur Peter Majeed
LINQ to SQL (ou EF), est tout au sujet de ramener des objets en mémoire, de les manipuler, puis de les mettre à jour avec la base de données distincte de demandes pour chaque ligne.
Dans le cas où vous n'avez pas besoin de s'hydrater l'ensemble de l'objet sur le client, il est beaucoup mieux d'utiliser côté serveur opérations (stockées procs, TSQL) au lieu de LINQ. Vous pouvez utiliser LINQ fournisseurs de problème TSQL sur la base de données. Par exemple, avec LINQ to SQL, vous pouvez utiliser le contexte.ExecuteCommand("Update table set champ=valeur où la condition"), il suffit de regarder dehors pour L'Injection SQL.
OriginalL'auteur Jim Wooley