Migration Error when when updating database

0

These are my 2 classes:

public class CartableActConfig : IEntityTypeConfiguration<CartableActModel>
{
    public void Configure(EntityTypeBuilder<CartableActModel> builder)
    {
        builder.ToTable("CARTABLE_ACT", ClaimContext.DEFAULT_SCHEMA);

        builder.HasKey(t => t.CartableActId);
        builder.Property(p => p.CartableActId).UseHiLo("CartableActSequence");

        builder.Property(t => t.CartableActId).ValueGeneratedNever().IsRequired();
        builder.Property(t => t.ActCode).IsRequired();
        builder.Property(t => t.CartableStateId).IsRequired();
        builder.Property(t => t.ChangeDate).IsRequired();

        builder.HasDiscriminator<string>("Discriminator")
        .HasValue<CartableActRegisterModel>("register")
        .HasValue<CartableActCompleteModel>("complete")
        .HasValue<CartableActReferredModel>("referred")
        .HasValue<CartableActDepartmentResponseModel>("depresponse")
        .HasValue<CartableActFirstSummeryModel>("firstsummery")
        .HasValue<CartableActFinalSummeryModel>("finalsummery")
        .HasValue<CartableActComitteeMeetingModel>("comitteemeeting")
        .HasValue<CartableActSatisficationModel>("satisfication");



        builder.Property(t => t.CartableActId).HasColumnName("CARTABLE_ACT_ID");
        builder.Property(t => t.CartableStateId).HasColumnName("CARTABLE_STATE_ID");
        builder.Property(t => t.ActCode).HasColumnName("ACT_CODE");
        builder.Property(t => t.ActorId).HasColumnName("ACTOR_ID");
        builder.Property(t => t.ChangeDate).HasColumnName("CHANGE_DATE");
        builder.Property(t => t.Discriminator).HasColumnName("Discriminator");
        builder.Property(t => t.PreviouseCartableActId).HasColumnName("PREVIOUSE_CARTABLE_ACT_ID");

        builder.HasMany(m => m.ActAttachments)
           .WithOne(o => o.Act).HasForeignKey(f => f.ActId).OnDelete(DeleteBehavior.Cascade);
    }
}

public class SubClaimSubjectConfig : IEntityTypeConfiguration<SubClaimSubjectModel>
{
    public void Configure(EntityTypeBuilder<SubClaimSubjectModel> builder)
    {
        builder.ToTable("SUB_CLAIM_SUBJECT", ClaimContext.DEFAULT_SCHEMA);

        builder.HasKey(t => t.SubClaimSubjectId);
        builder.Property(p => p.SubClaimSubjectId).UseHiLo("SubClaimSubjectSequence");
        //builder.Property(t => t.SubClaimSubjectId).ValueGeneratedNever().IsRequired();
        builder.Property(t => t.ClaimSubjectId).IsRequired();
        builder.Property(t => t.Degree).IsRequired();

        builder.Property(t => t.SubClaimSubjectId).HasColumnName("SUB_CLAIM_SUBJECT_ID");
        builder.Property(t => t.ClaimSubjectId).HasColumnName("CLAIM_SUBJECT_ID");
        builder.Property(t => t.Degree).HasColumnName("DEGREE");
        builder.Property(t => t.Title).HasColumnName("TITLE");
        builder.Property(t => t.Time).HasColumnName("TIME");

        builder.HasMany(m => m.CartableActCompletes)
           .WithOne(o => o.SubClaimSubject)
           .HasForeignKey(f => f.SubClaimSubjectId);
    }
}

I want to add-migration and Update the Database, Adding process is done and successful but when I want to update the Database it throws this error please help me I don't know what is the problem and I can't find it I'm new in migration and I couldn't search deeply

        Failed executing DbCommand (39ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [CLAIM].[CARTABLE_ACT] (
    [CARTABLE_ACT_ID] bigint NOT NULL,
    [CARTABLE_STATE_ID] bigint NOT NULL,
    [ACT_CODE] int NOT NULL,
    [ACTOR_ID] bigint NOT NULL
    [REFERRED_DEPARTMENT_ID] bigint NULL,
    [IS_SATISFY] bit NULL,
    [SATISFY_LEVEL] nvarchar(max) NULL,
    CONSTRAINT [PK_CARTABLE_ACT] PRIMARY KEY ([CARTABLE_ACT_ID]),
    CONSTRAINT [FK_CARTABLE_ACT_CARTABLE_STATE_CARTABLE_STATE_ID] FOREIGN KEY ([CARTABLE_STATE_ID]) REFERENCES [CLAIM].[CARTABLE_STATE] ([CARTABLE_STATE_ID]) ON DELETE CASCADE,
    CONSTRAINT [FK_CARTABLE_ACT_CLAIM_SUBJECT_CLAIM_SUBJECT_ID] FOREIGN KEY ([CLAIM_SUBJECT_ID]) REFERENCES [CLAIM].[CLAIM_SUBJECT] ([CLAIM_SUBJECT_ID]) ON DELETE CASCADE,
    CONSTRAINT [FK_CARTABLE_ACT_PARTY_EXPERT_PARTY_ID] FOREIGN KEY ([EXPERT_PARTY_ID]) REFERENCES [CLAIM].[PARTY] ([PARTY_ID]) ON DELETE CASCADE,
    CONSTRAINT [FK_CARTABLE_ACT_SUB_CLAIM_SUBJECT_SUB_CLAIM_SUBLECT_ID] FOREIGN KEY ([SUB_CLAIM_SUBLECT_ID]) REFERENCES [CLAIM].[SUB_CLAIM_SUBJECT] ([SUB_CLAIM_SUBJECT_ID]) ON DELETE CASCADE
);


Microsoft.Data.SqlClient.SqlException (0x80131904): Introducing FOREIGN KEY constraint 'FK_CARTABLE_ACT_SUB_CLAIM_SUBJECT_SUB_CLAIM_SUBLECT_ID' on table 'CARTABLE_ACT' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
   at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite)
   at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName)
   at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   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 connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
ClientConnectionId:676d868d-ead3-40e2-b53a-a2f92e37e1e3
Error Number:1785,State:0,Class:16

Introducing FOREIGN KEY constraint 'FK_CARTABLE_ACT_SUB_CLAIM_SUBJECT_SUB_CLAIM_SUBLECT_ID' on table 'CARTABLE_ACT' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.

c#
entity-framework
asp.net-core
migration
server-side
asked on Stack Overflow Jan 10, 2021 by saVsa 94 • edited Jan 11, 2021 by marc_s

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0