Auparavant, lors de la création d'une migration, la suppression en cascade était définie sur true, puis la base de données était mise à jour. Honnêtement, je n'ai pas remarqué que l'élimination en cascade était réglée sur vrai. Après plusieurs migrations appliquées à la base de données, j'ai besoin de mettre la cascade delete à false mais cela ne fonctionne pas, car elle continue à être supprimée en cascade.Cascade delete lorsque je l'ai défini sur false ne fonctionne pas dans Entity Framework 6
C'est celui-à-plusieurs je l'ai fait, où un client peut avoir de nombreux véhicules et un véhicule appartient à un client:
Ceci est ma classe client:
public class Customer {
public int Id { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
public List<Vehicle> Vehicles { get; set; }
public Customer()
{
Vehicles = new List<Vehicle>();
}
}
C'est ma classe de véhicule:
public class Vehicle {
public int Id { get; set; }
public string Enrollment{ get; set; }
public string Chassis { get; set; }
public float? Kilometers{ get; set; }
public int? CylinderCapacity{ get; set; }
public Customer Customer { get; set; }
public int CustomerId{ get; set; }
}
Et voici ma configuration API Courant:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Vehicle>()
.HasRequired(v => v.Customer)
.WithMany(c => c.Vehicles)
.HasForeignKey(v => v.CustomerId)
.WillCascadeOnDelete(false);
}
Et la classe de migration est la suivante:
public partial class DisableDeleteOnCascade : DbMigration
{
public override void Up()
{
DropForeignKey("dbo.Vehicles", "CustomerId", "dbo.Customers");
AddForeignKey("dbo.Vehicles", "CustomerId", "dbo.Customers", "Id");
}
public override void Down()
{
DropForeignKey("dbo.Vehicles", "CustomerId", "dbo.Customers");
AddForeignKey("dbo.Vehicles", "CustomerId", "dbo.Customers", "Id", cascadeDelete: true);
}
}
Pour une raison quelconque lorsque je supprime un client supprime toujours les véhicules, et je ne veux pas que le comportement. Qu'est-ce que je fais mal ici?