Je travaille avec LINQ To SQL depuis un petit moment maintenant et quand il s'agit de supprimer une entité de la BD, j'ai toujours appelé la table. DeleteOnSubmit et transmis dans l'entité. Parfois je me suis trouvé écrire quelque chose comme:LINQ To SQL: Supprimer une entité (par ID) avec une requête
db.Users.DeleteOnSubmit(db.Users.Where(c => c.ID == xyz).Select(c => c).Single());
Ceci bien sûr provoque deux requêtes. Un pour obtenir l'entité correspondant aux critères et un autre pour l'effacer. J'ai souvent l'identifiant de l'enregistrement à retirer et je me demande s'il existe un moyen plus direct de retirer une ligne d'une table via l'identifiant uniquement?
Vous pouvez également faire de DeleteByPK une méthode d'extension sur DataContext et la chaîne elle-même devrait probablement être une requête paramétrée (exec sp_executesql ...). –
dans la ligne SQL sur une déclaration Linq2Sql semble vaincre le but –
@Bobby: pas vraiment.J'utilise en ligne SQL pour la performance et en cas de besoin (SQL complexe). Reste sur la génération SQL pour les opérations communes. –