-3
votes

Aucune option d'ajout de fichier EDMX au projet dans la solution MVC

J'ai créé une application MVC. J'aimerais maintenant ajouter un nouveau projet de bibliothèque de classe à la solution, puis ajouter un fichier EDMX à ce projet.

Ceci était facile. Mais maintenant, je dois choisir entre .Net Core et .NET Standard. Mais il semble que cela n'a pas d'importance que je choisis car si je crée une bibliothèque de classe avec l'un de ces cadres, Visual Studio ne fournit aucune option pour leur ajouter un fichier EDMX! Et je ne vois pas une option pour ajouter une bibliothèque de classe Standard .NET Frameworks.

Quelle est l'incantation Secret à ajouter un nouveau projet à ma solution MVC, puis ajoutez un fichier EDMX à ce projet?

Remarque: j'ai la possibilité d'ajouter un fichier EDMX directement au projet MVC. Mais je préférerais placer dans un projet séparé que j'ai fait auparavant.


3 commentaires

Quelle version de MVC utilisez-vous? Ceci est le noyau MVC ou l'ASP.NET MVC 6? S'il s'agit d'une application Web ASP.NET CORE, quel cadre utilisez-vous Full .NET Framework ou Core? Et que voulez-vous dire que vous ne voyez pas la possibilité d'ajouter une bibliothèque de classe de framework? Dans le nouveau projet Ajouter> Windows Desktop> Modèle Class Librally (.NET Framework) est manquant pour vous?


@ Tamáshuj Je viens d'entrer dans Visual Studio et j'ai sélectionné une nouvelle solution MVC. Il semble avoir construit un projet pour l'application ordinaire et complète. Y a-t-il maintenant plusieurs façons de créer des applications MVC?


Oui, il y a maintenant 2 frameworks MVC différents, l'ancien ASP.NET MVC et le nouveau Core ASP.NET CORE MVC. en.wikipedia.org/wiki/asp.net_mvc Le premier utilise le plein .NET Framework, et la seconde est implémentée dans .NET CORE et c'est une plate-forme transversale.


4 Réponses :


1
votes

Le fichier EDMX est obsolète avec EF Core et je pense que cela a été supprimé des projets de base .NET également. Si vous avez besoin de cela, vous devrez peut-être l'ajouter à un projet Normal .NET 4.5 et copier les fichiers, mais cela ne fera aucun sens en l'utilisant avec la norme .NET CORE ou .NET.

Vous devriez utiliser le code d'abord de toute façon, car il est plus propre et plus facile à utiliser.

Si vous avez déjà la base de données, vous pouvez vous reporter à ce lien, il peut vous aider à échafauder les classes de la base de données

https://docs.microsoft .com / fr-US / EF / Core / Get-Démarqué / Aspnetcore / existant-dB


5 commentaires

Je veux juste utiliser un cadre d'entité. Comment les modèles sont-ils intégrés sinon dans un fichier EDMX?


Le fichier Edmx n'est qu'un seul moyen d'utiliser EF. La manière recommandée est d'utiliser le code en premier. Ceci où vous définissez la classe de contexte et les classes d'entité et utilisez quelque chose appelé Migration pour créer votre base de données et lorsque vous devez mettre à jour la base de données, vous modifiez simplement les classes d'entité qui plantent vers les tables et créer une nouvelle migration qui scrut que le script changements et appliquer dans la base de données. Suivez le lien que j'ai partagé pour en savoir plus


Je suis à peu près sûr que vous pouvez toujours utiliser un cadre d'entité sans utiliser le code en premier.


Vous pouvez et vous pouvez le faire en copiant les fichiers à partir d'un projet standard .NET 4.5, mais dans ce cas, il ne sera pas un projet de base .NET et mieux aller avec le projet complet normal complet et vous utiliserez quelque chose qui est obsolète.


Avoir à copier des fichiers d'un autre type de projet n'est pas un support pour quelque chose. Cela était supporté. Maintenant j'entends ça ne l'est pas. Il me manque quelque chose.



-1
votes

En fonction de votre description, vous utilisez l'ancien framework ASP.NET MVC, et non le nouveau noyau, et dans ce cas, vous utilisez le cadre complet .NET. Ainsi, lorsque vous créez le nouveau projet de bibliothèque de classe, vous devez le faire avec le cadre complet .NET, car .NET Core et .NET Standard ne prend pas en charge, EDMX. Si vous avez choisi celui-ci, vous pouvez ajouter votre modèle de données Ado.Net Entity:

 Entrez la description de l'image ici


2 commentaires

Mais je pense que vous pouvez ajouter un projet de base à une solution qui a déjà un projet standard. Donc, je ne sais pas pourquoi cela compte ce que mon projet existant utilise.


La norme est compatible avec Core et Full .NET Framework. Cela signifie que vous pouvez ajouter la norme à un projet de base existant ou à un projet Full TReword complet existant. Mais comme ils le mentionnent dans les autres commentaires, le noyau et la norme ne prennent pas en charge EDMX, donc si vous souhaitez l'utiliser, vous aurez besoin du cadre complet .NET, c'est ce que j'ai essayé d'expliquer, que vous auriez besoin d'ajouter le Bibliothèque de classe avec le cadre complet .NET.



-1
votes

au moins pour EF V6, si vous utilisez des migrations EF, chacune ("état" / "cible") instantané de la base de données (stockée dans le fichier de la table DB et de la migration des migrations-Historique) est un fichier EDMX qui n'attend que d'être décodé, enregistré dans un fichier, puis chargé en VS (Visual Studio). ;)

C'est un peu en profondeur (ou du moins difficile), mais 'system.data.entity.migrations.edm.modelcompresseur' peut présenter l'indice.

Fondamentalement, vous pouvez extraire l'EDMX d'une / la migration correspondante. Mais je conviens que la première approche du code devrait être utilisée pour la mise en œuvre, l'EDMX n'est qu'une aide au développement de nos jours.


4 commentaires

Assez vague ce que vous dites ici. Si vous suggérez qu'un EDMX peut être construit à partir d'informations dans la table des migrations, vous vous trompez.


Je crains que j'ai raison - au moins aussi loin que EFV6, il vous suffit de savoir comment faire; Voici un indice - voir 'System.Data.entity.migrations.edm.modelcompresseur'.


Nous ne faisons pas de salles d'évasion ici. Votre réponse doit être claire, pas seulement un indice vague. Ce n'est pas clair comment cela vous aide à ajouter simplement à ajouter un EDMX à leur projet tout en Visual Studio.


J'essayais de souligner qu'un Edmx pourrait déjà être disponible sous le capot - Premier pour la cueillette et de construire sur la table des migrations-Histoire, mais je ne voulais pas surcharger ce sujet avec ce qui est peut-être moins direct. Réponse / solution.



0
votes

@jonathan: le fichier EDMX est une ancienne façon de faire des choses. EDMX n'est qu'un modèle T4 qui facilite la création d'EDMX.

avec .NET Core Le meilleur moyen est de: 1. Créez un projet de bibliothèque de base .NET. Ajouter EntityFrameworkcore Nuget Package de ici 2. Utilisez ce lien, à Générez de DB

Le concept d'EDMX n'est plus supporté.

J'espère que cela aide.


1 commentaires

Êtes-vous en train de dire que, lorsque le soutien auparavant pour l'entité a été construit, j'ai maintenant besoin de télécharger des paquets? Pourquoi cela se déplace-t-il en arrière?