8
votes

Le type d'entité [nom] ne fait pas partie du modèle pour le contexte actuel

Je crée un modèle utilisant EF et généré son contexte à l'aide du générateur DBContext 5.x. Maintenant, j'ai renommé nom de classe d'une de mes entités. Maintenant, quand j'exécute mon code, je reçois "L'étudiant de type entité2 ne fait pas partie du modèle pour le contexte actuel." ERREUR.

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    // public DbSet<Student> Students { get; set; } -> Origional
    public DbSet<Student2> Student { get; set; } // I renamed Student to Student2
}


3 commentaires

Où est-ce que well2 vient? Quelle est la structure de étudiant2 ?


Comme vous avez apparemment résolu votre problème, cela vous dérangerait-il de répondre à votre propre question en indiquant comment vous l'avez fait pour éclairer la communauté?


@Gernold Well2 en tapant erreur. J'ai ajouté une réponse à cette question. Stackoverflow.com/a/16029086/1077385


4 Réponses :


1
votes

Utiliser add-migration

Ceci est l'exemple d'échantillon: xxx

et la base de données de mise à jour, comme ceci: < Pré> xxx

in Visual Studio Vous pouvez utiliser Console pour cela. En tant que projet par défaut, vous devez choisir votre «CODE> Framework Projet - si vous en avez beaucoup.


12 commentaires

Désolé, je n'ai pas eu ce que vous essayez de dire.


@Faisalhafeez - J'ai mis à jour ma réponse. Est-ce clair pour vous maintenant?


@Faisalhafeez - Quel est votre problème avec ma réponse? Avez-vous essayé l'action que je vous recommande?


Le terme «migration complémentaire» n'est pas reconnu comme nom d'une cmdlet, d'une fonction, d'un fichier de script ou d'un programme opérable. Vérifiez l'orthographe du nom ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez.


@Faisalhafeez - Dans Visual Studio, vous pouvez utiliser la console de gestionnaire de paquets pour cela. En tant que projet par défaut, vous devez choisir votre projet-cadre d'entité - si vous en avez beaucoup.


@MIKRODEL Ceci est à propos de la base de données d'abord, pas de code d'abord, de sorte que votre seul ressort sur l'OP.


@Faisalhafeez - Je pense que vous voulez avec vous "Poco", vous voulez dire le code en premier.


@Faisalhafeez - l'autre sens comme vous dites "Database d'abord" - il n'est-il pas mieux que vous pourrez le changer sur la base de données?


Je suis nouveau dans le cadre d'entité. Eh bien, j'ai édité mon fichier EDMX et modifie certaines valeurs. Ça marche bien maintenant.


@Faisalhafeez - Donc, marquer mon message comme réponse et upvote, s'il vous plaît. =) Parce que cette discussion fait également partie de la réponse.


Hein? Accepter, uppote? Vous l'avez confondu seulement. La bonne chose à faire est de supprimer votre réponse.


@GertaNold - J'ai posté - et dans une discussion avec moi Faisal Hafeez reçoive la réponse de moi. Si vous pensez que ma réponse doit être supprimée - le signalez-le pour enlever.



0
votes

Bien voici la solution. Ouvrez le fichier UI du modèle.EDMX, et il modifie le nom de l'entité étudiante à Student2. Cela générera de nouveaux fichiers et contextes dans lesquels l'élève sera remplacé par Student2.


1 commentaires

Vous m'avez demandé de courir des commandes (ce qui n'a pas fonctionné pour moi). Et ce que j'ai fait le nom d'entité d'édition. L'erreur que j'ai faite était que j'ai changé de nom de classe de fichiers générés, mais que je n'ai pas dit au modèle d'utiliser une nouvelle classe. Il n'a donc pas été capable de trouver une nouvelle classe.



0
votes

De nombreux tutoriels demandent à faire toutes ces classes supplémentaires qui ne sont pas nécessaires. Fondamentalement, tout ce que vous avez à faire, pour faire fonctionner le modèle d'entité est de créer le modèle, puis créez l'objet dans votre contrôleur.

exemple modèle: myentity.edmx Exemple de contrôleur: xxx

tout le reste est dans le modèle d'entité, alors lorsque l'erreur a lu: "MyentityContext" ne fait pas partie du modèle "C'était vrai parce que je créais un classe supplémentaire avec le nom "myentityContext" par les tutoriels.

Lorsque vous essayez de créer une vue forte avec le contexte que vous créez, il va exploser, car il essaie d'associer une classe qui n'existe pas dans Le modèle. Donc, en supprimant tout le contexte supplémentaire DAL et modèle, créez une nouvelle vue à l'aide de l'entité.context qui apparaît dans le menu Vue forte, tout devrait fonctionner correctement.

J'ai eu le même problème et < Un href = "https://stackoverflow.com/questions/19695545/The-Ecent-type-xxx-is-not-par-ft-the-model-for-the-Current-Context"> Publié ce que j'ai fait pour le réparer


0 commentaires

14
votes

J'ai eu le même problème quand j'avais de mauvaises métadonnées dans la chaîne de connexion. Essayez de recréer la chaîne de connexion dans app.config.


1 commentaires

Je viens d'avoir ce problème très avec une légère torsion. Dans ma situation, les articles liés à l'EF étaient dans un projet de bibliothèque distinct. La chaîne de connexion dans l'app.config était mise à jour correctement mise à jour. Cependant, j'avais échoué à mettre à jour manuellement la copie que j'avais dans le fichier web.config du projet principal ... qui était une copie plus ancienne de la chaîne de connexion avec (maintenant) métadonnées incorrectes, etc. Merci!