Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Column names in each table must be unique. Column name 'StripeRecipientId' in table 'dbo.Foos' is specified more than once

I have a model class named Foo that has, among others, these properties.

public string StripeRecipientId { get; set; }

public override bool HasProvidedBillingInformation
{
    get
    {
        // return !string.IsNullOrEmpty(this.StripeRecipientId);

        return false;
    }
}

I have enabled migrations and am using Code First. When I run the update-database commandlet, whether with -Force option is specified or not, I get this error:

Column names in each table must be unique. Column name 'StripeRecipientId' in table 'dbo.Foos' is specified more than once.

I double-checked and triple checked and there's only one column of that name in my model as well as in the table. This column was created already by a previous run of the update-database commandlet just a while ago.

I am tempted to delete my database and then apply the migrations, but that will mean me having to create a lot of test data just to be able to test the feature I am working on just now.

I am using Entity Framework v6.1.2.

How do I get rid of this error?

like image 574
Water Cooler v2 Avatar asked Sep 29 '15 13:09

Water Cooler v2


2 Answers

Run the Add-Migration command with the -IgnoreChanges flag. Then run Update-Database again.

-Update-

These commands should be run in the Package Manager Console. From the main menu: Tools-> NuGet Package Manager -> Package Manager Console.

like image 190
longestwayround Avatar answered Oct 01 '22 22:10

longestwayround


Add-Migration -IgnoreChanges as it is worked for me, but still threw up more errors.

like image 37
Ugochukwu Unamka Avatar answered Oct 02 '22 00:10

Ugochukwu Unamka