J'ai une classe de modèle nommée 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;
}
}
J'ai activé les migrations et j'utilise Code First. Lorsque j'exécute le update-database
commandlet, que ce soit avec -Force
l'option est spécifiée ou non, j'obtiens cette erreur:
Column names in each table must be unique. Column name 'StripeRecipientId' in table 'dbo.Foos' is specified more than once.
J'ai revérifié et vérifié trois fois et il n'y a qu'une seule colonne de ce nom dans mon modèle ainsi que dans le tableau. Cette colonne a déjà été créée par une précédente exécution du update-database
commandlet il y a tout juste un instant.
Je suis tenté de supprimer ma base de données, puis d'appliquer les migrations, mais cela signifie que je devrai créer de nombreuses données de test juste pour pouvoir tester la fonctionnalité sur laquelle je travaille en ce moment.
J'utilise Entity Framework v6.1.2.
Comment puis-je me débarrasser de cette erreur?
Exécutez le Add-Migration
avec la commande -IgnoreChanges
drapeau. Exécutez ensuite Update-Database
encore.
- Mise à jour -
Ces commandes doivent être exécutées dans la console du gestionnaire de packages. Dans le menu principal: Outils-> NuGet Package Manager -> Package Manager Console.
Je lance ce Add-Migration -IgnoreChanges
et j'ai reçu une erreur indiquant que vos deux migrations précédentes sont en attente. Exemple: Migration-1, Migration-2
Je cours update-database -target Migration-1
et
update-database -target Migration-2
Base de données créée avec succès. Running Seed method.
Add-Migration -IgnoreChanges car cela a fonctionné pour moi, mais a encore généré plus d'erreurs.
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 réaliser un rééchafaudage et mettre à jour la base de données par la suite. Exécutez donc Add-Migration après avoir supprimé les propriétés et vous obtiendrez un résultat satisfaisant, puis exécutez pdate-Database il devrait également être satisfaisant.
Cela fonctionne pour moi en deux étapes:
Step 1) Just delete this column from a table in Database
Step 2) Rebuild the Project and run Project.