asp.net mvc(迁移)

asp.net mvc (Migration)

我在 asp.net mvc 中创建 table 但是当我创建迁移时,此错误消息显示

Introducing FOREIGN KEY constraint 'FK_dbo.DailyTransactions_dbo.Contracts_ContractId' on table 'DailyTransactions' 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. See previous errors.

这是 DailyTransactions table :

 public class DailyTransactions
{
    [Key]
    public int DailyTransactions_Id { get; set; }

    public double Account { get; set; }

    public string Account_Name { get; set; }

    public double Debit { get; set; }

    public double Credit { get; set; }

    public DateTime Date { get; set; }

    public string Remarks { get; set; }

    public int CustomerId { get; set; }

    [ForeignKey("CustomerId")]
    public virtual Customers customers { get; set; }

    public int ContractId { get; set; }

    [ForeignKey("ContractId")]
    public virtual Contracts contracts { get; set; }

}

和这份合同 table :

 public class Contracts
{
    [Key]
    public int Contracts_Id { get; set; }

    public int Contract_Num { get; set; }

    public DateTime Contract_Start { get; set; }

    public DateTime Contract_End { get; set; }

    public string Status { get; set; }

     public string TypeOfRent { get; set; }

    public double AmountOfRent { get; set; }

     public double Total { get; set; }

    public int CustomerId { get; set; }

      [ForeignKey("CustomerId")]
    public virtual Customers customers { get; set; }

      public int sectionsId { get; set; }

      [ForeignKey("sectionsId")]
      public virtual Sections sections { get; set; }



}

尝试为 DailyTransactionsContracts 关闭 CascadeDelete:

modelBuilder.Entity<DailyTransactions>()
    .HasRequired(c => c.Contracts)
    .WithMany()
    .WillCascadeOnDelete(false);

例如:

public class YourDBContext: DbContext 
{
    public YourDBContext(): base() 
    {
    }



    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<DailyTransactions>()
            .HasRequired(c => c.Contracts)
            .WithMany()
            .WillCascadeOnDelete(false);
    }
}