|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 147 ![]() |
Visual Studio 2012
Entity Framework 5 SQL Compact 4.0 Bonjour, Mon problème est le suivant, après avoir effectué une opération de suppression par la méthode suivante : Code :
Context.Database.ExecuteSqlCommand(string.Format("DELETE FROM {0}", tablename)); Code :
Citation:
De plus, lorsque j’effectue cette opération en 2 temps, je supprimer, je ferme l’application, j’insère les enregistrements tout fonctionne correctement. Je débute dans l’utilisation de l’Entity Framework, mais cela ressemble fortement à un problème de rafraîchissement de mes objets. En vous remerciant par avance de votre aide.
__________________
Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore" |
|||
|
|
00
|
|
|
#2 |
![]() ![]() |
Ton problème se déclenche parce que tout simplement tu effectues les opérations suivantes :
Bref cela n'est pas du tout une bonne pratique, la seule solution qui n'est pas aussi une bonne pratique c'est qu'après avoir exécuté ta commande pour vider la table tu détaches de ton contexte toutes les instances en rapport avec l'entité mappée à la table dont les lignes ont été supprimées.
__________________
Consultant .Net chez SoftFluent Découvrir notre produit CodeFluent Entities Adhérer à l'association Fier d'être développeur ![]() Les FAQs sur les technologies .Net voir ici Les cours et tutos sur les technologies .Net voir ici Les critiques sur les livres parlant des technologies .Net voir ici Pensez à la balise [CODE] Pensez au tag si votre problème est résolu
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 147 ![]() |
Merci pour ta réponse.
En effet je comprends mieux le principe. Toutefois, cela m’amène à une question Si ce n'est pas une bonne pratique, quelle est la bonne pratique pour supprimer massivement le contenu d'une table (pas de procédure stockée dans SQL compact) ? J'ai bien essayé la méthode suivante : Code :
Après je débute avec l'EF5, et je ne vois pas comment détacher un entity de mon context (pas de fonction detach dans l'EF5 ????) du coup je n'arrive pas à tester ta solution qui me semble être la bonne.
__________________
Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore" |
||
|
|
00
|
|
|
#4 | |||||||
![]() ![]() |
Citation:
Citation:
Pour plus de simplicité tu peux utiliser la méthode d'extension Delete fournie par cette librairie installable via nuget Install-Package EntityFramework.Extended Citation:
Code C# :
__________________
Consultant .Net chez SoftFluent Découvrir notre produit CodeFluent Entities Adhérer à l'association Fier d'être développeur ![]() Les FAQs sur les technologies .Net voir ici Les cours et tutos sur les technologies .Net voir ici Les critiques sur les livres parlant des technologies .Net voir ici Pensez à la balise [CODE] Pensez au tag si votre problème est résolu
|
|||||||
|
00
|
|
|
#5 | ||||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 147 ![]() |
Le code suivant provoque la même erreur :
Code :
J'ai essayé de détacher également mon objet en rajoutant le code suivant : Code :
Je "pense" comprendre le fait que les lignes supprimés sont toujours présentes dans le contexte mais je pensais que le fait de passer par la fonction Remove() qui dépend du contexte permettrait de contourner ce problème... Il y a obligatoirement une énorme boulette dans mon code, mais difficile de mettre la main dessus.
__________________
Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore" |
||||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : mai 2003 Messages : 147 ![]() |
Je viens de trouver mon erreur.
Je ne suis pas certain d'être très clair dans mes explications mais je vais néanmoins essayer. Premièrement mon architecture contient une DAL et une BLL. Lorsque j’appelle directement la fonction de suppression depuis ma DAL (IndividusDAO.DeleteAll()) je me retrouve avec une exception. Du coup j'ai créé dans ma BLL la fonction DeleteAll (ce que je comptais faire par la suite) et lorsque j’appelle cette dernière, adieu cette maudite exception. En gros j’ai créé 2 instances de ma classe IndividusDAO, l’une pour la suppression et l’autre pour mon insertion…. Je pensais éviter ce genre de problème avec la mise en place de Singleton mais du coup c’est le développeur qui faut changer Encore merci pour l’aide Bonne continuation CB
__________________
Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore" |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com