Partage
  • Partager sur Facebook
  • Partager sur Twitter

Relation many to many suppression

    1 juillet 2021 à 14:19:02

    Bonjour,

    Je suis en train de développer une application web API avec ASP.NET core et entity framework.

    J'ai une relation Many to Many entre ma table Client et ma table Contact. En effet, un contact peut appartenir à plusieurs clients et un client peut avoir plusieurs contacts.

    Voici le code qui me permet de faire actuellement la relation many to many : 

    Client.cs

        public class Client
        {
            [Key]
            public int Id { get; set; } //TODO : à supprimer
    
            public virtual List<ClientContact> ClientContacts { get; set; }
        }

    Contact.cs

        public class Contact
        {
            [Key]
            public int ID { get; set; } //TODO : à supprimer
    
             public virtual List<ClientContact> ClientContacts { get; set; }
        }

    DBcontext.cs : 

        public class DBContext : DbContext
        {
            public DBContext (DbContextOptions<DBContext > options)
    : base(options){} protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<ClientContact>() .HasKey(t => new { t.ClientId, t.ContactId }); modelBuilder.Entity<ClientContact>() .HasOne(pt => pt.Client) .WithMany(p => p.ClientContacts) .HasForeignKey(pt => pt.ClientId); modelBuilder.Entity<ClientContact>() .HasOne(pt => pt.Contact) .WithMany(t => t.ClientContacts) .HasForeignKey(pt => pt.ContactId); } public DbSet<Client> Clients { get; set; } public DbSet<Contact> Contacts{ get; set; }
    }

    Le problème se trouve au niveau de la suppression d'un contact pour un client donné : 

    En effet : 

    Si un contact est associé à un seul client, il faut supprimer le contact ainsi que la ligne de la table ClientContact qui permet de faire le lien entre le client et le contact.

    Si un contact est lié à plusieurs clients, il faut juste supprimer la ligne de la table ClientContact sans supprimer le contact.

    Auriez vous une idée de comment faire cela ?

    Merci par avance pour votre réponse



    -
    Edité par SysyBebe 1 juillet 2021 à 14:26:02

    • Partager sur Facebook
    • Partager sur Twitter

    Relation many to many suppression

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown