web-dev-qa-db-fra.com

Les noms de colonne dans chaque table doivent être uniques. Le nom de colonne 'StripeRecipientId' dans la table 'dbo.Foos' est spécifié plusieurs fois

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?

11
Water Cooler v2

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.

20
longestwayround

Cela a fonctionné pour moi.

  1. 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

  2. Je cours update-database -target Migration-1 et

    update-database -target Migration-2

  3. Base de données créée avec succès. Running Seed method.

1
abdul hameed

Add-Migration -IgnoreChanges car cela a fonctionné pour moi, mais a encore généré plus d'erreurs.

1
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 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.

1
Ugochukwu Unamka

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.
0
Jitendra Suthar