Ajout d'une Nouvelle Colonne à une Table Existante dans le Cadre de l'Entité
J'ai ajouté une nouvelle colonne à une table dans ma base de données. La table est déjà défini dans le modèle d'Entity Framework. J'ai été par le biais de la plupart des articles ici sur la façon de le faire et il ne fonctionne toujours pas.
Un peu de fond, ce modèle d'entité n'a pas été mis à jour dans au moins 3 ans. Donc, en plus de la colonne de je suis ajoutant des je sais qu'il y a eu un certain nombre d'autres colonnes qui ont été ajoutés à l'époque, mais jamais inclus. J'ai repris le projet sur il y a 9 mois et n'ont jamais été en mesure de réussir à mettre à jour le modèle.
Première tentative:
- Ouvert le Modèle dans Visual Studio
- Cliqué avec le bouton droit sur l'arrière-plan
- Cliqué sur "mettre à Jour le Modèle De Base de données..."
- Cliqué sur l'Onglet Actualiser
- Tables Sélectionnées
- Mis en évidence la table spécifique
- Cliqué Sur Terminer
Résultat:
- Classes pour des Dizaines de tables qui ont été dans mon modèle ont été supprimés
- La table en question n'a pas été mis à jour
Deuxième Tentative
- Restauré tous les Source de
- Même que ci-dessus mais
- Après l'ouverture de l'Assistant de mise à Jour, clique sur l'Onglet Supprimer
- Tables Sélectionnées
- Cliqué Sur Terminer
- Toutes les Tables ont été supprimés
- Enregistré le Modèle EF/Fermé/Ouvert
- Suis retourné à la mise à Jour de l'Assistant Ajouter un Onglet
- Cliqué Tables
- Aucun de mes tableaux ont été affichée lorsque j'ai développé tout
- Coché la case au niveau des Tables
Résultat
- Aucun de mes tables ont été ajoutées à l'arrière, mais rien qui ne
initialement inclus a été ajouté
Troisième Tentative
- Restauré tous les source de
- Supprimé les deux .tt les fichiers
- Ouvre l'Assistant de mise à Jour
- Cliqué sur Ajouter pour Tout
Résultat
- Rien n'a été recréé, pas .tt les fichiers ou quoi que ce soit d'autre.
Quatrième Tentative
- Restauré Source
- Table supprimée à partir du Modèle EF
- Ouvert Assistant De Mise À Jour
- Cliqué Sur Ajouter Des Tables
Résultats
- Classes pour des Dizaines de tables qui ont été dans mon modèle ont été supprimés
- La table en question n'a pas été ajouté
Dernière Tentative
- Ajouté entité manuellement pour modèle
Résultat
- Code compilé et exécuté, mais les valeurs n'ont jamais été récupérées à partir de la DB ou mis à jour
Toute aide ou une orientation qui pourrait être fournie serait grandement apprécié que j'en suis à un point critique et obtenir le modèle mis à jour.
Eh bien, c'est un peu ce que je commençais à penser, mais il n'est toujours pas expliquer ce qui se passe. Toutes les tables sont dans le modèle, mais quand je lance la mise à jour de la base de données, il supprime tout alll l' .fichiers cs, mais le laisse dans le modèle quand je l'affiche. J'ai aussi ajouté une toute nouvelle table de la base de données, puis exécutez la mise à jour et je me retrouve avec le nouveau tableau affiché dans le modèle, tous mes .cs les fichiers supprimés et la nouvelle table ajoutée. Je suis clairement fait quelque chose de mal. Merci
OriginalL'auteur Rodney Buxton | 2016-03-11
Vous devez vous connecter pour publier un commentaire.
Le "Modèle de mise à Jour de la Base de données" est dur/lent à utiliser et est sujette aux erreurs. Il génère d'autres choses que vous n'avez probablement pas envie/besoin. Afin d'ajouter manuellement la colonne que vous avez besoin de mieux travailler.
Je vous suggère de le faire à l'extérieur de la VS rédacteur en chef depuis en fonction du nombre de modèles de tables, il peut être très lent à l'ouverture du fichier dans VS.
Ressemble à ce pourrait être la solution, je suis à la recherche d', mais après avoir fait les étapes 1 à 6, j'obtiens "Erreur 2009: Contenu non valide. L'aspect conceptuel des Membres ou des Biens "xxxxx" spécifié dans le cadre de cette MSL n'existe pas dans MetadataWorkspace." sur la nouvelle propriété Scalaire de la ligne de sous
<EntityTypeMapping TypeName="yyyy">
Avez-vous jamais résoudre ce problème? Ayant le même problème.
Désolé @Bojan, je n'ai pas. Je l'ai essayé, n'a pas fonctionné et je suis rentré à l'aide de l' (dur/lent à l'utilisation) VS designer.
Et maintenant, je me fais cette exception:
The conceptual side Member or Property '' specified as part of this MSL does not exist in MetadataWorkspace.
OriginalL'auteur alltej
Un avenant à la réponse par alltej ci-dessus, et répondre à Chris Walsh répondre qu'il est d'obtenir "L'aspect conceptuel des Membres ou des Biens "xxxxx" spécifié dans le cadre de cette MSL n'existe pas dans MetadataWorkspace." sur la nouvelle propriété Scalaire de la ligne de sous"
Vous devez vous assurer que vous la recherche d'Ajouter la propriété " dans DEUX endroits au sein de votre .fichier edmx , sinon vous obtiendrez de Chris erreur
OriginalL'auteur Ken.Fukizi
Compris le problème. Quand j'ai généré le modèle j'ai été faire une Erreur 113: la Multiplicité n'est pas valide dans le Rôle. Je n'ai pas le remarquer parmi les autres 16307 les erreurs qui ont été générés lors de la création a échoué. Une fois que j'ai fixé que tout a bien fonctionné.
Grâce
OriginalL'auteur Rodney Buxton
1.Dans Windows Exlorer,clic droit sur le fichier *.fichier edmx et l'ouvrir avec le bloc-notes (ou Notepad++/Textpad).
2.Recherchez le texte
<EntityType Name="YourTableNameToAddColumn">
.3.Ajout de la propriété
<Property Name="YourNewColumnName" Type="varchar" MaxLength="64" />
.4.Recherchez le texte de nouveau
<EntityType Name="YourTableNameToAddColumn">
, il y a une deuxième.5.Ajout de la propriété
<Property Name="YourNewColumnName" Type="varchar" MaxLength="64" />
.6.Recherchez le texte
<MappingFragment StoreEntitySet="YourTableNameToAddColumn">
.7.Ajouter un mappage de la nouvelle colonne
<ScalarProperty Name="YourNewColumnName" ColumnName="YourNewColumnName"/>
.8.Enregistrer l' *.fichier edmx
9.Après que la mise à jour de l'edmx le modèle de votre table
public string YourNewColumnName { get; set; }
OriginalL'auteur Nestoras Rose
AVERTISSEMENT: Si vous ne pouvez pas supprimer votre base de données, NE suivez PAS ces étapes!
Je suis en utilisant le Code Visuel (.net 2).
Voici comment je l'ai résolu:
D'abord, de supprimer votre base de données:
Puis retirez tous les migrations:
Exécuter la même commande jusqu'à tous migrations sont supprimés!
Ajouter votre première migration:
Après l'exécution de la commande ci-dessus, assurez-vous de faire les modifications dans le nouveau fichier généré, probablement à de Données/Migrations fichier: timestamp+InitialCreate pas le desing fichier.
De l'Image exemple:
L'ajout d'une nouvelle Colonne
Après l'ajout de vos colonnes et tout est conforme, enregistrez le projet et exécutez la commande suivante:
Si tout est ok, votre nouvelle colonne sera créé.
OriginalL'auteur LAT94