comment supprimer plusieurs enregistrements de base de données en utilisant Linq dans asp.net mvc
C'est le code pour supprimer un enregistrement:
var vehicleProperty = db.VehicleProperties.Where(a => a.EngineId == id).ToList();
db.VehicleProperties.Remove(vehicleProperty);
db.SaveChanges();
Si je veux supprimer plus d'un élément, puis ce que je vais faire, par exemple, de supprimer tous les where typeId = 4
Je suis en train d'essayer avec le code ci-dessous, mais provoque une erreur.
var vp = db.VehicleProperties.Where(a => a.EngineId == id).ToList();
db.VehicleProperties.Remove(vp);
db.SaveChanges();
je suis en utilisant entity framework Version=5.0.0.0 et de l'utilisation de EF Concepteur de forme de base de données (modèle de données d'entité)
j'ai essayé plusieurs code mais les erreurs s'il vous plaît vérifier mes captures d'écran avec le code d'erreur et le
- ...provoque une erreur... comment au sujet de certains détails
- veuillez ouvrir l'image dans un nouvel onglet de sorte que vous pouvez lire facilement mes erreurs merci
Vous devez vous connecter pour publier un commentaire.
De le faire par le biais de Linq to entities vous avez besoin pour parcourir la collection de les retirer un à un
Alternativement, vous pouvez simplement passer une commande SQL que par cet article MSDN
De l'article associé:
ou
c'est la seule fois de façon économique... Vérifier La Réponse Ici
mon problème est due à l'extraction de la clé de mon 2ème montrent les images d'Exception. retirez d'abord enfant, puis retirez les parents
La SUPPRESSION de la déclaration en contradiction avec la RÉFÉRENCE
Solution
je viens de passer à SQL Server Management studio ouvert de clé étrangère et de définir la Suppression de la Règle :Cascade
(en d'INSERTION Et de mise à JOUR Msl)
Vous pouvez effectuer les opérations suivantes:
Mise à jour après renseignements demandés:
Conformément à notre intérieur détails de l'exception, il est assez clair qu'il y a une contrainte de clé étrangère conflit.
Ce que cela signifie, avant de supprimer une clé qui est visé dans une autre table que la clé étrangère, vous devez supprimer les lignes dépendantes en premier. Vous pouvez également supprimer la contrainte causant l'erreur de garder les lignes dépend de la clé.
Plus d'informations sur la façon de le réaliser à l'aide de EF est ici
Dans le cas où le nombre d'éléments à supprimer n'est pas de manière significative grande, vous pouvez utiliser ce que Andy Nichols a suggéré.
Mais lorsque vous souhaitez supprimer des centaines et des milliers d'articles, vous remarquerez que la méthode n'est pas performant. Récemment, j'ai rencontre un de ces cas et a changé ma méthode à ce qui est indiqué ci-dessous:
Vous pouvez lire à propos de ces indicateurs ici.
Tournant à la fois de ces indicateurs a des avantages et des inconvénients. Dans mon cas, il était de servir plus de bien (la grosse performance de la sauvegarde) alors mauvaise. Ouvert aux commentaires sur si il y aura des effets secondaires (n'ai pas vu dans le dernier mois).
Lorsque vous souhaitez supprimer une LIGNE utiliser .(Premier) OU FirstOrDefault()
Remarque:- Vous pouvez également utiliser .ToList() ou FirstOrDefault au lieu de (Premier).
ET SI VOUS SOUHAITEZ SUPPRIMER PLUS D'UNE LIGNE SUR LA BASE DE l'identité de