Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc(迁移)_C#_Sql Server_Entity Framework_Ef Code First_Database Migration - Fatal编程技术网

C# asp.net mvc(迁移)

C# asp.net mvc(迁移),c#,sql-server,entity-framework,ef-code-first,database-migration,C#,Sql Server,Entity Framework,Ef Code First,Database Migration,我在asp.net mvc中创建了crete表,但当我创建迁移时,会显示此错误消息 在表“DailyTransactions”上引入外键约束“FK_dbo.DailyTransactions_dbo.Contracts_Compactd”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束。请参阅前面的错误 这是DailyTransactions表: public class DailyTransactions { [Ke

我在asp.net mvc中创建了crete表,但当我创建迁移时,会显示此错误消息

在表“DailyTransactions”上引入外键约束“FK_dbo.DailyTransactions_dbo.Contracts_Compactd”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束。请参阅前面的错误

这是DailyTransactions表:

 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; }

}
本合同表:

 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; }



}

尝试关闭
日常交易
合同
级联删除

modelBuilder.Entity<DailyTransactions>()
    .HasRequired(c => c.Contracts)
    .WithMany()
    .WillCascadeOnDelete(false);
modelBuilder.Entity()
.HasRequired(c=>c.合同)
.有很多
.WillCascadeOnDelete(假);
例如:

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



    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<DailyTransactions>()
            .HasRequired(c => c.Contracts)
            .WithMany()
            .WillCascadeOnDelete(false);
    }
}
public类YourDBContext:DbContext
{
public YourDBContext():base()
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasRequired(c=>c.合同)
.有很多
.WillCascadeOnDelete(假);
}
}

尝试在
modelBuilder.Entity()
中添加
WillCascadeOnDelete(false)
,因为您没有任何
[必需的]
属性注释。我不明白我在哪里添加了它。您需要在
OnModelCreating
方法中添加它(我假设您首先使用的是代码)。另外,您可能希望尝试
modelBuilder.Conventions.Remove()也是。可能是重复的谢谢,,我解决了错误确定我会试试。@SoftwareDeveloper我很高兴帮助您!:)