Changement EF 6 Stratégie de Génération de Code à partir de T4
Dans le passé, j'ai créé avec succès edmx fichiers. Ce fut à l'aide de EF5 et Visual Studio 2012. Depuis, j'ai mis à niveau vers Visual Studio 2013 et EF6. L'EF 5 code fonctionne toujours, mais maintenant j'ai un problème. Je peux créer edmx fichiers, et un EntityDataSource, je peux configurer la source de données, il voit des tables et des colonnes bien, mais quand j'essaie d'actualiser le schéma j'obtiens:
Le schéma n'a pas pu être déterminé en raison de l'erreur suivante dans le EntityDataSource:
Ne pouvait pas trouver le type CLR pour (mon type ici)
J'ai vu une solution en ligne de me dire de changer ma Stratégie de Génération de Code de défaut (le edmx des fichiers créés dans d'EF 5 sont définis comme Héritage ObjectContext), mais il ne me laisse pas faire cela parce que l'option 'T4' est grisé.
Est-il un moyen pour que je puisse la force de la Stratégie de Génération de Code pour ne pas utiliser de T4?
EDIT:
Pawel états qui EntityDataSource ne prend pas en charge EF 6. Est-il un tutorial qui montre une étape facile par étape de la façon de se connecter à EF 6? J'ai obtenu tous mes EF informations à partir du Début du livre ASP.Net 4, mais il est maintenant évidemment obsolète. Je vois que EF 6 est encore en phase bêta. Peut-être qu'ils vont ajouter le support pour EntityDataSource à un certain stade?
EDIT 2:
OK, j'ai été bidouiller avec ce pour un peu, et je peux me connecter à l'aide de LinqDataSource. Je n'obtiendrez pas une chance de jouer avec elle beaucoup de pour quelques jours, mais il semble que cela fonctionne.
EDIT 3:
À l'aide de LinqDataSource ne fonctionne pas. La seule opération CRUD il peut effectuer le Lire. Évidemment, il doit y avoir un moyen d'utiliser le nouvel objectif EF 6.0 cadre (Pawel a suggéré-je utiliser MVC), mais ils n'ont pas rompu complètement pour mon scénario (à l'aide de site web), le pourraient-ils?
EDIT 4:
J'ai trouvé une solution pour mon scénario, voir ma réponse ci-dessous.
Grâce Gert, j'ai ajouté à mon edmx, mais malheureusement, je reçois toujours le même message d'erreur.
un aperçu de EntityDataSourceControl pour EF6 est maintenant disponible, voir blogs.msdn.com/b/adonet/archive/2014/02/11/...
OriginalL'auteur Family | 2013-10-15
Vous devez vous connecter pour publier un commentaire.
En raison de changements dans EF6 si vous utilisez EF6 dans VS2012/VS2013 la seule prise en charge de la génération de la stratégie est de la T4. Vous pouvez obtenir EntityObject entités et ObjectContext contexte en utilisant Les modèles de T4 VS Galerie. Remarque: EntityDataSource ne prend pas actuellement en charge EF6.
MODIFIER
L'aperçu de la EntityDataSourceControl avec EF6 prise en charge est désormais disponible
si vous êtes en apprentissage ou en tentant de créer un nouveau projet, je vous recommande de le fait de ne pas utiliser EntityDeataSource. Au lieu de regarder MVC. MVC n'utiliser EF-dessous (y compris EF6 dans la dernière version). Si vous voulez vraiment utiliser EntityDataSource - au moment où vous aurez besoin d'utiliser EF5. Je sais qu'il y a un peu de travail sur la faire fonctionner avec EF6, mais je ne sais pas quand ou comment il va le navire.
Je vais regarder dans MVC. Je vous remercie pour votre temps.
Cela sonne comme une excellente occasion d'utiliser ModelBinding et fortement typé contrôle lié aux données pour votre application. Ne déplacez pas l'ensemble de votre application MVC parce que vous ne pouvez pas faire glisser et de déposer une source de données, il y a d'autres raisons stratégiques pour choisir MVC comme votre cadre.
OriginalL'auteur
j'ai déjà VS2013 de la Communauté, et je me battais avec le même problème. Tout comme votre image, la stratégie de génération de code a été désactivé, je veux dire, il n'était pas possible de changer, mais... clic droit sur le nom de la propriété "Stratégie de Génération de Code" puis cliquez sur "Réinitialiser" et la valeur de la propriété change pour Héritage ObjectContext!
J'espère qu'il peut aider quelqu'un!
PD:Désolé, mon anglais est vraiment mauvais! xP
OriginalL'auteur
Dans Ef6 vous pouvez utiliser l'héritage contexte. Droite cliquez simplement sur le fichier edmx et ouvert avec l'option ouvrir dans la visionneuse XML. Ensuite, la recherche de l'héritage et définissez la valeur sur true.
Une fois que vous supprimez le t4 fichiers comment dois-je recréer? Si je clic droit à l'intérieur de l'EDMX, et sélectionnez le code de génération de fichier, ma seule option est d'utiliser le EF6 DBcontext modèle?
OriginalL'auteur
Comme Pawel mentionne que vous ne pouvez utiliser T4 en EF 6. Ce que j'ai fait pour obtenir mon système à l'aide de EF 5 a été de désinstaller EF 6, à l'aide du gestionnaire de package NuGet (Site web -> Gérer les Packages NuGet -> les Paquets Installés -> EntityFramework -> Désinstaller). Ensuite, j'ai dû ajouter EF 5 à l'aide de gestionnaire de package NuGet (même menu, mais en Ligne au lieu de Paquets Installés). Ensuite, j'ai dû supprimer les éléments suivants à partir du web.config:
Maintenant, quand j'ajoute un ADO.NET Modèle de Données d'Entité, on me demande quelle est la version de l'Entity Framework que je veux utiliser, mais Entity Framework 6.0 est grisé. C'est évidemment un bug, il convient de demander à cet EF 6.0 est installé, non pas quand il n'est pas. Quand il a été installé, il n'a jamais demandé quelle est la version que j'ai voulu et juste créé automatiquement un edmx pour la version 6.0
OriginalL'auteur
J'ai le même problème et (EF6) et quand j'ai changé les Métadonnées Artefact de Traitement de "Copier dans le Répertoire de Sortie", je reçois toujours le même message d'erreur. Qui a été proposé comme une solution à la plupart de mes problèmes.
Mes pas (à reproduire l'erreur):
Créez un répertoire appelé DAL, ajouter fichier edmx, permettre de créer une chaîne de connexion, l'ajout de deux tables, de construire.
Créer une valeur par défaut.page aspx, faites glisser le EntityDataSource de la boîte à outils, cliquez sur le menu volant de Configurer la source de données, choisissez mon nom de Connexion à partir de ci-dessus, et j'obtiens l'erreur:
La metatdata spécifié dans la chaîne de connexion n'a pas pu être chargé. Envisager la reconstruction de projet web, à construire assemblages qui peuvent contenir des métadonnées. Le message d'erreur suivant(s) a eu lieu: Le fournisseur n'a pas retourné un ProviderManifest instance.
Été d'essayer de trouver une solution pour les 24h environ maintenant.
Alors maintenant, quand je choisis EF5 (pas 6) et je ne les étapes ci-dessus, je clic droit sur le Diagramme de la Surface et allez dans les propriétés j'ai changer deux paramètre:
1.) Artefact de Traitement de "Copier dans le Répertoire de Sortie"
2.) Modifiez le Code de Génération de Stratégies de "l'Héritage ObjectContext" à partir de T4
Qui me permet de glisser le EntityDataSource à partir de la boîte à outils, cliquez sur le menu volant de Configurer la source de données, choisissez mon nom de Connexion à partir de ci-dessus et tout est rentré au monde de l'amour d'une programmation...
Ne m'a pris qu'24 solide heures et 2 gaspillée jours de codage pour enfin rassembler une solution adaptée. Et mon ordinateur portable a obtenu aplatir et réinstallé, b/c j'étais tellement désespérée et en tirant mes cheveux.
OriginalL'auteur
Je suis à l'aide de visual studio 2015
Dbl cliquez sur le xxx.fichier edmx dans l'explorateur de solutions, ce qui devrait ouvrir la
diagarm dans le concepteur,
appuyez sur alt+entrée qui ouvre la fenêtre de propriété
Chercher "Stratégie de Génération de Code de la propriété" - choisissez la valeur de T4 à partir de la liste déroulante pour Héritage le Contenu de l'Objet.
OriginalL'auteur