MVC4 échafaudage de base de données-premier modèle d'Entity Framework dans Visual Studio 2012

Je vais avoir des problèmes avec Visual Studio 2012, en essayant d'ajouter un MVC4 Contrôleur avec des échafaudages. Idéalement, je voudrais avoir un modèle d'Entity Framework (fichier edmx, etc) généré à partir d'une base de données à l'aide d'Ajouter un Nouvel Élément - ADO.NET Modèle de Données d'Entité (c'est à dire pas le Premier Code) dans un ensemble distinct de mon application web. Cependant, lorsque j'ai mis cela en place et l'utilisation Ajouter un Contrôleur, en précisant "MVC contrôleur de lire/écrire les actions et les points de vue, à l'aide de Entity Framework" et en choisissant un Modèle de classe et de la classe de contexte de Données à partir de mon DatabaseModel assemblée le message d'alerte suivant s'affiche.

'Ilm.Payforit4.DatabaseModel.Mno ne fait pas partie de la
'Ilm.Payforit4.DatabaseModel.Payforit4Entities' classe, et l'
'Ilm.Payforit4.DatabaseModel.Payforit4Entities' classe ne pouvait pas être
modifié pour ajouter un " DbSet la propriété de
c'. (Par exemple, le 'Ilm.Payforit4.DatabaseModel.Payforit4Entities'
la classe peut être dans un assembly compilé.)

De ne pas être en mesure de modifier la classe a de sens depuis qu'il est dans une autre assemblée, bien que dans la même solution, et auto-généré via T4, mais en regardant le code généré automatiquement pour Payforit4Entities le " DbSet la propriété est très clairement il y a déjà.

    public DbSet<Mno> Mnoes { get; set; }

J'ai essayé un certain nombre d'autres choses.

  1. de mettre le modèle de données directement dans l'application web
  2. de modifier le modèle de classe à une variété d'autres tables dans la base de données dans le cas où il y a un problème avec la Mno classe
  3. réduisant le modèle de données pour une seule, simple tableau
  4. en utilisant Entity Framework Power Tools Beta 2 pour désosser un Code Premier modèle. Cela a généré une nouvelle série d'erreurs. Je peux voir pourquoi c'est une version bêta.
  5. la modification de la ADO.NET Modèle de Données Stratégie de Génération de Code à partir de Aucun par Défaut pour créer un modèle de données basé sur ObjectContext plutôt que DbContext
  6. Désactivation de pluralisation de sorte que le nom de la propriété est Mno au lieu de Mnoes

Aucun d'entre eux travaillaient. La seule chose qui a fonctionné a été la rédaction d'un Premier Code DbContext classe dérivée et POCO à la main. Par coïncidence, tous les exemples que j'ai trouvé qui montre MVC4 échafaudage utilise ce genre de modèle de données. Est-il quelque chose quelque part qui dit que le Premier Code est le seul genre de modèle de données qui fonctionne avec MVC4 échafaudage? Quelqu'un a réussi à l'échafaud une première base de données (.edmx) modèle de données dans Visual Studio 2012? La base de données est assez complexe que je préfère rester avec une base de données de la première stratégie.

Je peux voir qu'il y aurait à avoir certaines différences dans l'échafaudage de Code de la Première par rapport à la Première Base de données de modèles. Par exemple, l'ancien a POCO propriété en maintenant la touche indiquée par un KeyAttribute alors que celle-ci détient cette information dans le modèle edmx fichiers. Est-ce la raison pour la désosser fonction dans le Cadre de l'Entité Outils électriques? Sommes-nous censés nous éloigner de edmx fichiers à l'ingénierie inverse du Premier Code de modèles pour l'utilisation MVC4 échafaudage? Si oui, sommes-nous censés porter sur l'utilisation de la Dynamique de Données des projets jusqu'à ce que le Cadre de l'Entité Outils électriques sont finis?

OriginalL'auteur Chris Bowley | 2012-09-25