Les noms de colonnes de chaque table doit être unique. Nom de colonne 'StripeRecipientId" dans la table " dbo.Foos' est spécifié plus d'une fois
J'ai un modèle de classe nommé Foo
qui a, entre autres, ces propriétés.
public string StripeRecipientId { get; set; }
public override bool HasProvidedBillingInformation
{
get
{
//return !string.IsNullOrEmpty(this.StripeRecipientId);
return false;
}
}
Je l'ai activé sur les migrations et je suis en utilisant le Premier Code. Quand je lance le update-database
commandlet, que ce soit avec -Force
option est spécifiée ou pas, j'ai cette erreur:
Column names in each table must be unique.
Column name 'StripeRecipientId' in table
'dbo.Foos' is specified more than once.
J'ai vérifié en double et triple vérifié et il n'y a qu'une seule colonne de ce nom dans mon modèle ainsi que dans le tableau. Cette colonne a été créé déjà par une exécution précédente de la update-database
commandlet tout à l'heure.
Je suis tenté de supprimer ma base de données et ensuite appliquer les migrations, mais que signifie-moi d'avoir à créer un grand nombre de données de test juste pour être en mesure de tester la fonctionnalité que je suis en train de tout à l'heure.
Je suis en utilisant Entity Framework v6.1.2.
Comment puis-je me débarrasser de cette erreur?
J'ai oublié de mentionner, je fais toujours un
-Verbose
. Il est tentant de reproduire cette colonne de nouveau et je ne sais pas pourquoi.Excellente habitude 🙂 Est-il tentant d'appliquer un ancien de la migration, ou est votre plus récent de la migration de la tentative de créer la colonne?
Je n'ai jamais eu beaucoup de chance avec le code-première migrations. La Base de données initialiser semble le faire régulièrement (à l'origine des erreurs lors de l'exécution de l'application). J'ai vraiment envie de faire de code-première, en particulier à partir de la source de contrôle de point de vue.. mais je n'ai pas eu beaucoup de chance avec elle. Et avec de multiples contextes, les commandes sont ridicules. Données, semble donc plus facile en comparaison.
OriginalL'auteur Water Cooler v2 | 2015-09-29
Vous devez vous connecter pour publier un commentaire.
Exécuter le
Add-Migration
de commande avec le-IgnoreChanges
drapeau. Ensuite, exécutezUpdate-Database
de nouveau.-Mise à jour-
Ces commandes doivent être exécutées dans le Gestionnaire de paquets de la Console. À partir du menu principal: Outils-> Gestionnaire de Package NuGet -> Gestionnaire de paquets de la Console.
Dans quel outil ces commandes seront-elles organisées?
J'ai édité la réponse.
Merci. J'ai essayé de les exécuter dans le Gestionnaire de paquets en fait, mais il ne reconnaît pas les commandes et renvoie ce message d'erreur: Ajouter-les Migrations : Le terme "Ajoutez-les Migrations' n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou d'un programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès a été inclus, vérifiez que le chemin d'accès est correct et essayez à nouveau. Est-il autre chose que je devrais faire avant d'essayer d'exécuter ces commandes sur la console du Gestionnaire de Package?
C'est Ajouter de la Migration et de ne pas Ajouter de Migration des
OriginalL'auteur longestwayround
Ajoutez-Migration-IgnoreChanges comme il est travaillé pour moi, mais encore de vomir plus d'erreurs.
OriginalL'auteur Ugochukwu Unamka
Si vous avez également ajouté ces propriétés dans les tables de Base de données, vous continuerez à obtenir ces erreurs. J'ai donc dû supprimer les propriétés de ma propre table pour obtenir un re-l'échafaudage et de la mise à jour de la base de données par la suite. Afin de fonctionner Ajoutez-la Migration après vous devez avoir retiré les propriétés et vous permettra d'obtenir un résultat satisfaisant, puis exécutez mise à Jour de la Base de données il est également prévu d'être satisfaisante.
OriginalL'auteur Ugochukwu Unamka
Cela a fonctionné pour moi.
Je lance cette
Add-Migration -IgnoreChanges
et je suis d'erreur quevos deux précédentes migrations sont en attente. Exemple: La Migration-1 ,
Migration-2
- Je exécuter
update-database -target Migration-1
etupdate-database -target Migration-2
Base de données créée avec Succès.
Running Seed method.
OriginalL'auteur abdul hameed