Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > Entity Framework
Entity Framework Forum d'entraide sur le développement avec le modèle d'accès aux données Entity Framework de Microsoft.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/07/2012, 11h36   #1
BROWNY
Membre expérimenté
 
Avatar de BROWNY
 
Homme Toto Browny
Développeur informatique
Inscription : mars 2008
Messages : 490
Détails du profil
Informations personnelles :
Nom : Homme Toto Browny
Âge : 32
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : mars 2008
Messages : 490
Points : 587
Points : 587
Par défaut Erreur namespace Multiple fichier EDMX

Bonjour,

Juste un post pour laisser une trace d'un problème que je viens de résoudre et qui pourra aider certains.

J'avais une appli liée à une BDD donc un edmx + POCO 4.1
Les besoins évoluants, j'ai du lier l'appli à une 2nd BDD
J'ajoute mon nouveau EDMX, et de nouveau mon instanciateur de classe POCO ...
et là erreur car il reprend le même namespace car tout était dans l'APP_CODE

Que faire ?
__________________
Créateur de bugs professionnel
Ma philosophie en 4 temps:
-Ce n'est qu'en essayant continuellement que l'on finit par réussir.
-Plus ça rate, plus on a de chances que ça marche.
-Ne jamais révéler tout son savoir
-...
BROWNY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2012, 11h39   #2
BROWNY
Membre expérimenté
 
Avatar de BROWNY
 
Homme Toto Browny
Développeur informatique
Inscription : mars 2008
Messages : 490
Détails du profil
Informations personnelles :
Nom : Homme Toto Browny
Âge : 32
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : mars 2008
Messages : 490
Points : 587
Points : 587
Sur une doc microsoft écrit en petit :
Pour les applis asp.net séparer les edmx et autres fichiers générés dans des sous-dossiers différents.
Au lieu d'avoir le namespace de défault, il prendra le nom du sous dossier.

Il ne me restait plus qu'à inclure mes nouveaux espace de nom et le tour était joué.

En espérant que ça aide
__________________
Créateur de bugs professionnel
Ma philosophie en 4 temps:
-Ce n'est qu'en essayant continuellement que l'on finit par réussir.
-Plus ça rate, plus on a de chances que ça marche.
-Ne jamais révéler tout son savoir
-...
BROWNY est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/07/2012, 12h46   #3
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

J'étais justement en train de chercher une solution proche de que tu proposes de faire.

En fait, dans le SQL Server je regroupe mes tables dans des schémas qui correspondent à mes packages Power AMC.

J'aimerais bien que le générateur s'appuie sur les schémas pour créer des namespaces. Il n'y aurait qu'un seul niveau mais lorsqu'on a plus d'une centaine de tables ça peut être appréciable.

Ta solution est interessante par contre, lorsqu'on touche aux tables, si elles sont dans la même base, il faut cliquer table par table celles qui doivent figurer dans l'EDMX ce qui présente pour moi un risque d'erreur.

Est-il possible de modifier le poco qui fabrique l'EDMX ?

D'avance merci pour vos réponses,

Laurent
  Envoyer un message privé Réponse avec citation 01
Vieux 02/08/2012, 11h14   #4
BROWNY
Membre expérimenté
 
Avatar de BROWNY
 
Homme Toto Browny
Développeur informatique
Inscription : mars 2008
Messages : 490
Détails du profil
Informations personnelles :
Nom : Homme Toto Browny
Âge : 32
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : mars 2008
Messages : 490
Points : 587
Points : 587
Dans mes recherche, j'ai vu qu'on peut modifier à la main les fichier .tt.
Personellement, je ne me sens pas de taille à faire cela.
Mais peut-être que en analysant le code de génération, tu trouvera ton bonheur.
Il faut passer par les fichier tt car, si tu attaques directement les fichier générés, ils seront écrasés quand tu fera un mise à jour à partir de base .
__________________
Créateur de bugs professionnel
Ma philosophie en 4 temps:
-Ce n'est qu'en essayant continuellement que l'on finit par réussir.
-Plus ça rate, plus on a de chances que ça marche.
-Ne jamais révéler tout son savoir
-...
BROWNY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2012, 11h29   #5
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

Je travaille beaucoup avec les tt mais uniquement avec MES tt. J'ai pour politique de ne jamais modifier les fichiers natifs d'un système pour éviter de voir mes modifs disparaitre à l'occasion d'une évolution.

Ca serait peut-être sioux de déposer une feature request auprès de l'équipe Entity Framework et éventuellement de proposer de la développer mais il faut que la modif soit intégrée à une future version d'EF.

Etant donné que l'effort semble être produit en faveur du code first plutôt qu'en faveur du datadriven development, je ne suis pas certain qu'une telle évol soit faite dans le futur.

++

Laurent
  Envoyer un message privé Réponse avec citation 11
Vieux 29/08/2012, 20h29   #6
bonophil
Invité régulier
 
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 7
Points : 7
Bonjour, mais comment obtient-on les fichiers en .tt
J'ai un modele entity framework que j'ai généré à partir d'une base MySql et je n'ai que le designer (pourtant j'ai affiché tous les fichiers)
Merci
bonophil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2012, 21h11   #7
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

Je ne comprends pas bien ta phrase, pourrais tu reformuler ?

Merci

Laurent
  Envoyer un message privé Réponse avec citation 01
Vieux 29/08/2012, 23h12   #8
bonophil
Invité régulier
 
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 7
Points : 7
Voila, dans mon projet j'ai créé mon modèle EF en ajoutant un nouvel élément ADO.Net Entity Data Model qui 'mappe' sur sur une bade de données MySQL (avec Wamp)
Mon modèle s'appelle film.edmx et en dessous j'ai film.Designer.cs.

Or , j'ai besoin de récupérer les classes de mes entités et normalement c'est possible avec les fichiers ayant l'extension .tt

Or impossible de les avoir dans mons explorateur de solution.

J'ai vS ultimate 2010

Merci encore
bonophil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 06h26   #9
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

Il faut désactiver la génération automatique des classes de l'EDMX (stratégie de génération : aucune).

Ensuite, tu vas sur http://innovacallframework.codeplex.com

Tu vas dans Source code, browse

Tu vas dans Layers/DomainLayer puis tu récupères le fichier domain.tt

Ce fichier fait ce que tu veux.

Bien à toi

Laurent
  Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 08h29   #10
bonophil
Invité régulier
 
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 7
Points : 7
Merci Laurent de me répondre,
Juste une dernière question, comment désactiver cette génération automatique des classes de l'EDMX? Je ne vois pas comment faire.
Merci encore
bonophil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 09h08   #11
bonophil
Invité régulier
 
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 7
Points : 7
Re,
Autant pour moi, j'ai vu dans les propriétés de l'emx cette option et elle est déjà à Aucune.
J'ai donc suivi ta procédure et ce fichier domain.tt me semble complétement indépendant de mon projet.
A quoi sert il exactement?
Merci
bonophil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 10h18   #12
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Re,
Déjà tu dois corriger le chemin qui pointe sur le fichier EDMX au début du .tt
Ensuite, tu dois corriger le namespace des classes à générer.
Enfin, tu exécutes le tt et tu obtiens toutes les classes de ton domaine.
Bonne journée
Laurent
  Envoyer un message privé Réponse avec citation 01
Vieux 30/08/2012, 11h16   #13
bonophil
Invité régulier
 
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 7
Points : 7
Ouahhh, ça a l'air puissant mais je crois que je vais devoir passer trop de temps pour comprendre et appliquer cette façon de développer...
Ou alors, y a t-il un tuto pour présenter, par exemple, la manipulation de domain.tt?
Merci
bonophil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2012, 12h07   #14
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
tu peux aller voir http://framework.innovacall.net/Samp...Form_MyProfile

Pour le domain.tt il n'y a rien de compliqué, c'est logique qu'il faille pointer sur ton EDMX pour qu'il puisse créer les classes, idem pour le namespace (mais c'est même pas obligé).

++

Laurent
  Envoyer un message privé Réponse avec citation 01
Vieux 30/08/2012, 12h09   #15
CUCARACHA
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Si tu utilises toutes les couches, c'est encore plus simple.
Il y a aussi des explications dans la page d'accueil du framework sur codeplex.
Je n'ai pas encore terminé la doc, par contre j'ai presque terminé exemple avancé. Je dois publier aujourd'hui.

Bien à toi

Laurent
  Envoyer un message privé Réponse avec citation 01
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h44.


 
 
 
 
Partenaires

Hébergement Web