我不知道如何正确地设置我的表,所以我在尝试多对多的时候不会遇到这样的错误。
System.Data.SqlClient.SqlException: 'Introducing FOREIGN KEY constraint 'FK_TableB_TableA_TableBId' on table 'TableB' 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.'
public class TableA
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<TableB> TableBs { get; set; }
}
public class TableB
{
public int Id { get; set; }
public int TableCId { get; set; }
public virtual TableC TableC { get; set; }
public int TableAId { get; set; }
public virtual TableA TableA { get; set; }
}
public class TableAConfig : IEntityTypeConfiguration<TableA>
{
public void Configure(EntityTypeBuilder<TableA> builder)
{
builder.HasKey(x => x.Id);
builder.Property(x => x.Id).ValueGeneratedOnAdd();
builder.Property(x => x.Name).HasMaxLength(100).IsRequired();
}
}
public class TableBConfig : IEntityTypeConfiguration<TableB>
{
public void Configure(EntityTypeBuilder<TableB> builder)
{
builder.HasKey(x => x.Id);
builder.Property(x => x.Id).ValueGeneratedOnAdd();
}
}
company.TableBs.Clear();
foreach (var d in dto.Data)
{
company.TableBs.Add(new TableB() { TableCId = d.id, TableA = TableA });
}
dbContext.SaveChanges();
public class TableC
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public virtual ICollection<TableBs> TableBs { get; set; }
}
public class TableCConfig : IEntityTypeConfiguration<TableC>
{
public void Configure(EntityTypeBuilder<TableC> builder)
{
builder.HasKey(x => x.Id);
builder.Property(x => x.Id).ValueGeneratedOnAdd();
builder.Property(x => x.Name).HasMaxLength(50).IsRequired();
builder.Property(x => x.Code).HasMaxLength(5).IsRequired();
}
}