Le Premier Code vs la Première Base de données
J'ai créé un modèle d'Entity Framework basé sur une base de données existante, alors généré le POCO entités du modèle. La chaîne de connexion dans mon web.config n'est pas Entity Framework, c'est juste la norme de chaîne de connexion (il manque la CSDL, LSED, MSL références).
Je peux compiler mon application, mais quand je le lance, j'obtiens cette erreur:
Code généré à l'aide des modèles de T4 pour la Première Base de données et Modèle de
Premier développement peuvent ne pas fonctionner correctement si elle est utilisée dans le Premier Code, mode.
Pour continuer à utiliser la Base de données de Première ou le Premier Modèle s'assurer que l'Entité
Cadre de la chaîne de connexion est spécifié dans le fichier de configuration de
l'exécution de l'application. Pour utiliser ces classes, qui ont été générés à partir de
La Première base de données ou le Premier Modèle, avec le Premier Code supplémentaire
configuration à l'aide d'attributs ou de la DbModelBuilder API et puis
supprimer le code qui génère cette exception
Ma question est, où dans mon code est-il réaliser le POCOs est venu de l'auto-génération, et comment puis-je obtenir à se comporter comme le Premier Code? Je ne veux pas référence à la CSDL etc dans ma chaîne de connexion.
- il est mauvais que vous devez utiliser à la fois le premier modèle et le code de la première ...
- Pas nécessairement. Il pourrait peut-être commencer la génération de code à partir d'un modèle connu, mais alors à partir de ce point avant de commencer à utiliser le premier code à écrire du nouveau code.
- Je viens de recevoir ça 🙂 désolé...
- Maintenant 2018 votre réponse me faire gagner du temps et rendre une question sur StackOverflow
Vous devez vous connecter pour publier un commentaire.
Si la chaîne de connexion a les métadonnées, EF pense que c'est le Modèle ou Première Base de données. Si c'est une simple chaîne de connexion, EF pense que c'est le Premier Code. Toutefois, si vous voulez commencer à faire le premier modèle, mais faire des EF pense que vous êtes vraiment en train de faire le premier code (qui est ce que vous faites), assurez-vous d'utiliser le DbContext générateur de code, pas celui par défaut. Le premier Code POCOs sont vraiment--"de la plaine de vieux objets c#": il n'est pas conscient de la base de données ou la modification de suivi des trucs à eux à tous. Pour utiliser le DbContext générateur de code, cliquez droit sur votre modèle de diagramme et choisissez "Ajouter un nouvel élément de génération de code...", puis sélectionnez l'ADO.NET DbContext Générateur. Par ailleurs, selon la façon dont vous avez nommé vos clés primaires et étrangères et/ou si elles sont plus complexes que de simples int Id, vous aurez probablement besoin de remplir un peu de code pour cartographier les relations entre les objets de la "OnModelCreating" méthode dans votre contexte. Supprimer la ligne
throw new UnintendedCodeFirstException();
et le remplacer par votre code de mappage. Sinon EF peuvent ne pas être en mesure de comprendre toutes les relations (rappelez-vous il n'y a pas de métadonnées pour elle de s'appuyer sur).Espère que cette aide.
Vous avez besoin de ce qui suit dans votre fichier de config:
Je suis en utilisant la Base de données de premier et résolu ce problème en copiant le EDMX généré chaîne de connexion à l'application.config de mon application de démarrage. On a déjà existé, mais apparemment, ils étaient différents