C# 添加迁移工作,但我可以';使用EF核心更新数据库

C# 添加迁移工作,但我可以';使用EF核心更新数据库,c#,.net-core,entity-framework-core,C#,.net Core,Entity Framework Core,添加迁移时,一切都进行得很顺利(Entity Framework Core 2.2.6-Serviceing-10079使用提供程序“Microsoft.EntityFrameworkCore.SqlServer”初始化了“ConsultarDbContext”,选项为:None),但在更新数据库时发生错误,我认为没有理由发生错误 我尝试在迁移过程中进行更改,创建了一些字段,但仍然存在相同的问题 这是创建的迁移,在我看来一切正常 public partial class initial : Mi

添加迁移时,一切都进行得很顺利(
Entity Framework Core 2.2.6-Serviceing-10079使用提供程序“Microsoft.EntityFrameworkCore.SqlServer”初始化了“ConsultarDbContext”,选项为:None
),但在更新数据库时发生错误,我认为没有理由发生错误

我尝试在迁移过程中进行更改,创建了一些字段,但仍然存在相同的问题

这是创建的迁移,在我看来一切正常

public partial class initial : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
                name: "PRODUTO",
                columns: table => new
                {
                    COD_PRODUTO = table.Column<string>(type: "varchar(100)", nullable: false),
                    DES_PRODUTO = table.Column<string>(type: "char(1)", nullable: true),
                    STA_STATUS = table.Column<string>(type: "char(1)", nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_PRODUTO", x => x.COD_PRODUTO);
                });

            migrationBuilder.CreateTable(
                name: "PRODUTO_COSIF",
                columns: table => new
                {
                    COD_PRODUTO = table.Column<string>(type: "varchar(100)", nullable: false),
                    COD_COSIF = table.Column<string>(type: "varchar(100)", nullable: false),
                    COD_CLASSIFICACAO = table.Column<string>(type: "char(6)", nullable: true),
                    STA_STATUS = table.Column<string>(type: "varchar(100)", nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_PRODUTO_COSIF", x => new { x.COD_PRODUTO, x.COD_COSIF });
                    table.ForeignKey(
                        name: "FK_PRODUTO_COSIF_PRODUTO_COD_PRODUTO",
                        column: x => x.COD_PRODUTO,
                        principalTable: "PRODUTO",
                        principalColumn: "COD_PRODUTO",
                        onDelete: ReferentialAction.Restrict);
                });

            migrationBuilder.CreateTable(
                name: "MOVIMENTO_MANUAL",
                columns: table => new
                {
                    DAT_MES = table.Column<int>(nullable: false),
                    DAT_ANO = table.Column<int>(nullable: false),
                    NUM_LANCAMENTO = table.Column<int>(nullable: false),
                    COD_PRODUTO = table.Column<int>(nullable: false),
                    COD_COSIF = table.Column<int>(nullable: false),
                    DES_DESCRICAO = table.Column<string>(type: "varchar(100)", maxLength: 50, nullable: true),
                    DAT_MOVIMENTO = table.Column<DateTime>(type: "smalldatetime", nullable: false),
                    COD_USUARIO = table.Column<string>(type: "varchar(100)", maxLength: 15, nullable: true),
                    VAL_VALOR = table.Column<double>(type: "double(18,2)", nullable: false),
                    ProdutoCosifCOD_PRODUTO = table.Column<string>(nullable: true),
                    ProdutoCosifCOD_COSIF = table.Column<string>(nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_MOVIMENTO_MANUAL", x => new { x.DAT_ANO, x.DAT_MES, x.NUM_LANCAMENTO, x.COD_PRODUTO, x.COD_COSIF });
                    table.ForeignKey(
                        name: "FK_MOVIMENTO_MANUAL_PRODUTO_COSIF_ProdutoCosifCOD_PRODUTO_ProdutoCosifCOD_COSIF",
                        columns: x => new { x.ProdutoCosifCOD_PRODUTO, x.ProdutoCosifCOD_COSIF },
                        principalTable: "PRODUTO_COSIF",
                        principalColumns: new[] { "COD_PRODUTO", "COD_COSIF" },
                        onDelete: ReferentialAction.Restrict);
                });

            migrationBuilder.CreateIndex(
                name: "IX_MOVIMENTO_MANUAL_ProdutoCosifCOD_PRODUTO_ProdutoCosifCOD_COSIF",
                table: "MOVIMENTO_MANUAL",
                columns: new[] { "ProdutoCosifCOD_PRODUTO", "ProdutoCosifCOD_COSIF" });
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(
                name: "MOVIMENTO_MANUAL");

            migrationBuilder.DropTable(
                name: "PRODUTO_COSIF");

            migrationBuilder.DropTable(
                name: "PRODUTO");
        }
    }
公共部分类初始值:迁移
{
受保护的覆盖作废(MigrationBuilder MigrationBuilder)
{
migrationBuilder.CreateTable(
名称:“PRODUTO”,
列:表=>new
{
COD_PRODUTO=table.Column(类型:“varchar(100)”,可为空:false),
DES_PRODUTO=table.Column(类型:“char(1)”,可为空:true),
STA_STATUS=table.Column(类型:“char(1)”,可为空:true)
},
约束:表=>
{
表.PrimaryKey(“PK_PRODUTO”,x=>x.COD_PRODUTO);
});
migrationBuilder.CreateTable(
名称:“PRODUTO_COSIF”,
列:表=>new
{
COD_PRODUTO=table.Column(类型:“varchar(100)”,可为空:false),
COD_COSIF=table.Column(类型:“varchar(100)”,可为空:false),
COD_CLASSIFICACAO=table.Column(类型:“char(6)”,可空:true),
STA_STATUS=table.Column(类型:“varchar(100)”,可为空:true)
},
约束:表=>
{
表.PrimaryKey(“PK_PRODUTO_COSIF”,x=>new{x.COD_PRODUTO,x.COD_COSIF});
表1.外键(
名称:“FK_PRODUTO_COSIF_PRODUTO_COD_PRODUTO”,
列:x=>x.COD\u PRODUTO,
原则性:“PRODUTO”,
主栏目:“科德·普罗杜托”,
onDelete:referentialiction.Restrict);
});
migrationBuilder.CreateTable(
名称:“MOVIMENTO_手册”,
列:表=>new
{
DAT_MES=表列(可为空:false),
DAT_ANO=表.列(可为空:false),
NUM_LANCAMENTO=table.Column(可空:false),
COD_PRODUTO=table.Column(可空:false),
COD_COSIF=table.Column(可空:false),
DES_descripcao=table.Column(类型:“varchar(100)”,maxLength:50,nullable:true),
DAT_MOVIMENTO=table.Column(类型:“smalldatetime”,可为空:false),
COD_USUARIO=table.Column(类型:“varchar(100)”,maxLength:15,nullable:true),
VAL_VALOR=table.Column(类型:“double(18,2)”,可为空:false),
ProdutoCosifCOD_PRODUTO=table.Column(可空:true),
ProdutoCosifCOD_COSIF=table.Column(可空:true)
},
约束:表=>
{
表.PrimaryKey(“PK_MOVIMENTO_MANUAL”,x=>new{x.DAT_ANO,x.DAT_MES,x.NUM_LANCAMENTO,x.COD_PRODUTO,x.COD_COSIF});
表1.外键(
名称:“FK_movinto_MANUAL_PRODUTO_COSIF_ProdutoCosifCOD_PRODUTO_ProdutoCosifCOD_COSIF”,
列:x=>new{x.ProdutoCosifCOD_PRODUTO,x.ProdutoCosifCOD_COSIF},
原则性:“PRODUTO_COSIF”,
主要列:新[]{“COD_PRODUTO”,“COD_COSIF”},
onDelete:referentialiction.Restrict);
});
migrationBuilder.CreateIndex(
名称:“IX_movinto_MANUAL_ProdutoCosifCOD_PRODUTO_ProdutoCosifCOD_COSIF”,
表:“MOVIMENTO_手册”,
列:新[]{“ProdutoCosifCOD_PRODUTO”、“ProdutoCosifCOD_COSIF”});
}
受保护的覆盖无效关闭(MigrationBuilder MigrationBuilder)
{
migrationBuilder.DropTable(
名称:“MOVIMENTO_手册”);
migrationBuilder.DropTable(
名称:“PRODUTO_COSIF”);
migrationBuilder.DropTable(
名称:“PRODUTO”);
}
}
这是PMC上的错误消息:

ailed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [MovimentosManuais] (
    [DAT_MES] int NOT NULL,
    [DAT_ANO] int NOT NULL,
    [NUM_LANCAMENTO] int NOT NULL,
    [COD_PRODUTO] int NOT NULL,
    [COD_COSIF] int NOT NULL,
    [DES_DESCRICAO] varchar(100) NULL,
    [DAT_MOVIMENTO] smalldatetime NOT NULL,
    [COD_USUARIO] varchar(100) NULL,
    [VAL_VALOR] double(18,2) NOT NULL,
    [ProdutoCosifCOD_PRODUTO] varchar(100) NULL,
    [ProdutoCosifCOD_COSIF] varchar(100) NULL,
    CONSTRAINT [PK_MovimentosManuais] PRIMARY KEY ([DAT_ANO], [DAT_MES], [NUM_LANCAMENTO], [COD_PRODUTO], [COD_COSIF]),
    CONSTRAINT [FK_MovimentosManuais_PRODUTO_COSIF_ProdutoCosifCOD_PRODUTO_ProdutoCosifCOD_COSIF] FOREIGN KEY ([ProdutoCosifCOD_PRODUTO], [ProdutoCosifCOD_COSIF]) REFERENCES [PRODUTO_COSIF] ([COD_PRODUTO], [COD_COSIF]) ON DELETE NO ACTION
);
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near '('.
Incorrect syntax near 'ACTION'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
ClientConnectionId:ca99d5b6-4f58-4bc8-950e-98c3962bf3ea
Error Number:102,State:1,Class:15
Incorrect syntax near '('.
Incorrect syntax near 'ACTION'.
DbCommand执行失败(1ms)[参数=[],命令类型='Text',命令超时='30']
创建表[MovimentosManuais](
[DAT_MES]int不为空,
[DAT_ANO]int不为空,
[NUM_LANCAMENTO]int不为空,
[COD_PRODUTO]int不为空,
[COD_COSIF]int不为空,
[DES_descripcao]varchar(100)NULL,
[DAT_MOVIMENTO]smalldatetime不为空,
[COD_USUARIO]varchar(100)NULL,
[VAL_VALOR]双精度(18,2)不为空,
[ProdutoCosifCOD_PRODUTO]varchar(100)NULL,
[ProdutoCosifCOD_COSIF]varchar(100)NULL,
约束[PK\U MovimentosManuais]主键([DAT\U ANO]、[DAT\U MES]、[NUM\U LANCAMENTO]、[COD\U PRODUTO]、[COD\U COSIF]),
约束[FK_movimentOSManualis_PRODUTO_COSIF_ProdutoCosifCOD_PRODUTO_COSIF]外键([ProdutoCosifCOD_PRODUTO],[ProdutoCosifCOD_COSIF])在删除时引用[PRODUTO_COSIF]([COD produtocosif],[COD COSIF])
);
System.Data.SqlClient.SqlException(0x80131904):靠近“(”的语法不正确。
“ACTION”附近的语法不正确。
位于System.Data.SqlClient.SqlConnection.OneError(SqlException异常,布尔断开连接,操作'1 wrapCloseInAction)
位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常,布尔断开连接,操作'1 wrapCloseInAction)
位于System.Data.SqlClient.TdsParser.ThroweException和Warning(TdsParserStateObject StateObjectStateObj、布尔调用方连接锁、布尔异步关闭)
位于System.Data.SqlClient.TdsParser.TryRu