|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() demba socketudiant Inscription : mai 2010 Messages : 192 ![]() |
Bonsoir ,
j'ai un soucis dans une appli winforms voici l'erreur et les classes concernées . Merci de toute Aide Code :
Erreur 1 'Contact_DAO.Contact' ne contient pas une définition pour 'Ajouter' et la meilleure surcharge de la méthode d'extension 'Contact_DAO.EntityObjectExtension.Ajouter(System.Data.Objects.DataClasses.EntityObject)' contient des arguments non valides C:\Users\doumbix\Documents\Visual Studio 2010\Projects\Contact_DAO\Contact_IHM\Gestion_Contact.cs 61 21 Contact_IHM Code :
Code :
|
||||
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Fernando HIJAZIIngénieur de déploiement réseaux Inscription : janvier 2011 Messages : 354 ![]() |
Dans la definition du methode ajouter vous avez fait :
Code :
public static void Ajouter(this EntityObject aObject) |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() demba socketudiant Inscription : mai 2010 Messages : 192 ![]() |
Oui c'est ce qui m’étonne et dans le tuto que j'avais lu il n'y avait pas de passage de paramètre au moment d'appeler la méthode Ajouter . Que faut - t'il faire ?
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() François DORINChef de Projet Inscription : décembre 2012 Messages : 104 ![]() |
Bonsoir,
La signature de la méthode Ajouter est un peu particulière. On peut voir apparaitre le mot clé "this" au niveau du premier paramètre, ce qui signifie que cette méthode est une méthode d'extension. En gros, il s'agit de définir une méthode applicable à une classe mais en dehors de la classe. Cette approche offre de nombreuses possibilités (implémenter des méthodes au niveau des interfaces par exemple, ou étendre une classe déjà existante). La limite de cette approche est qu'une méthode d'extension ne peut qu'utiliser les attributs, propriétés et méthodes publiques (ou internal selon les cas) d'une classe, mais pas ceux qui sont privées ou protégés. Concernant le problème que tu rencontres, pour pouvoir appeler la méthode d'extension sur un objet de la classe Contact, il faut : 1) que ta méthode d'extension soit accessible, via les using (ce qui semble être le cas) 2) que l'objet sur lequel tu veux appeler ta méthode d'extension soit ou dérive de la classe EntityObject. Est-ce que ta classe Contact hérite bien (directement ou indirectement), de la classe EntityObject ? |
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() demba socketudiant Inscription : mai 2010 Messages : 192 ![]() |
Effectivement , la Classe Contact n'héritait pas directement ou indirectement de la classe EntityObject . C'etait Bien ca le soucis . Merci .
je dois commencer a enregistrer mes contacts . Mais cela ne passe pas , pourtant je fais le binding , je poste le code , est ce Correct ? Si oui pourquoi j'ai rien dans ma base ? Code :
|
||
|
00
|
|
|
#6 |
|
Membre confirmé
![]() François DORINChef de Projet Inscription : décembre 2012 Messages : 104 ![]() |
De rien
Je t'invite à marquer le sujet comme résolu et d'ouvrir un autre sujet pour ta nouvelle question car elle n'a rien à voir avec le sujet initial ! Ensuite, je n'ai jamais utilisé le binding sur des textbox (je suppose que les textnom, etc... sont des textbox). Mais en général, le binding est un lien direct entre la source et son affichage. Ici, tu bind des propriétés de ton objet Contact. C'est donc directement les nom, prénom, etc... qui sont modifiés. Après, le pourquoi ce n'est pas en bd dépend de l'implémentation de ta classe Contact. Est-ce que l'objet est sauvegardé automatiquement à chaque modification ou y a-t-il une méthode "save()" (ou assimiliée) à appeler explicitement ? |
|
00
|
|
|
#7 |
|
Membre du Club
![]() demba socketudiant Inscription : mai 2010 Messages : 192 ![]() |
Oui il y a bien une méthode save que j'ai nommé Enregistrer qui est fait automatiquement dans la methode ajouter .
je vais marquer celle ci comme resolu . merci infiniment |
|
00
|
Copyright © 2000-2013 - www.developpez.com