C# 尝试创建重复列的实体框架

C# 尝试创建重复列的实体框架,c#,entity-framework,C#,Entity Framework,我正在使用实体框架。该表已存在my_列。我将属性my_列添加到类中以访问该列。然后,程序似乎试图创建列,但失败了,因为它已经存在 Column names in each table must be unique. Column name 'my_column' in table 'my_table' is specified more than once. 有没有办法让它不尝试创建列并识别现有列是它应该使用的列?您可以在更新batabase之前编辑迁移。删除重复项,看看会发生什么

我正在使用实体框架。该表已存在my_列。我将属性my_列添加到类中以访问该列。然后,程序似乎试图创建列,但失败了,因为它已经存在

Column names in each table must be unique. Column name 'my_column' in table 'my_table' is specified more than once.

有没有办法让它不尝试创建列并识别现有列是它应该使用的列?

您可以在更新batabase之前编辑迁移。删除重复项,看看会发生什么

            migrationBuilder.CreateTable(

            name: "InvoiceConsumers",

            columns: table => new

            {

               …,

                InvoiceId = table.Column<int>(nullable: false),

                InvoiceId1 = table.Column<int>(nullable: true)

            },

            constraints: table =>

            {

                table.PrimaryKey("PK_InvoiceConsumers", x => x.Id);

                table.ForeignKey(

                    name: "FK_InvoiceConsumers_Consumers_ConsumerId",

                    …);

                table.ForeignKey(

                    name: "FK_InvoiceConsumers_Invoices_InvoiceId",

                    …

                    onDelete: ReferentialAction.Cascade);

                table.ForeignKey(

                    …

                    column: x => x.InvoiceId1,

                    principalTable: "Invoices",

                    …

                    );

            });
migrationBuilder.CreateTable(
名称:“发票消费者”,
列:表=>new
{
…,
InvoiceId=table.Column(可空:false),
InvoiceId1=table.Column(可空:true)
},
约束:表=>
{
表.PrimaryKey(“PK_InvoiceConsumers”,x=>x.Id);
表1.外键(
名称:“FK_发票消费者_消费者_消费者”,
…);
表1.外键(
名称:“FK\U发票消费者\U发票\U发票ID”,
…
onDelete:引用。级联);
表1.外键(
…
列:x=>x.InvoiceId1,
原则:“发票”,
…
);
});

您在db中的该列上是否有所需的数据?如果没有,您可以尝试
更新数据库-v-f
甚至删除整个表,以便重新生成迁移。是否更改了数据类型?还是大写?@IsabelHM没有任何代码可以发布,真的,实体框架对我来说是一个黑匣子,它试图在它的own@Steve我过去常常通过删除列并让它创建来解决这个问题。然后,任何后续的运行都会成功地知道列在那里,而不会尝试重新创建它。但我无法删除它,因此我提出了这个问题。@DStanley是的,正确的类型和大小写。