none
Probleme avec Find Entity Framework qui fonctionne pour certaines entitee mais pas d autres

    Question

  • Bonjour, je travail actuellement sur un projet que j'ai récupéré qui fonctionne avec entity Framework, tout a été pensé en code first, j'ai rajouté 2 tables (2 entités) une entité profil et une entité action avec une relation many to many, j'ai bien effectué la migration de ma base

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Unis.ISMC.Core.Entities
    {
        public class Profil
        {
            
            public int Id { get; set; }
            [StringLength(50)]
            public string Nom { get; set; }
            [StringLength(250)]
            public string Commentaire { get; set; }
    
            public ICollection<ActionHyperV> ActionHyperVs { get; set; }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Unis.ISMC.Core.Entities
    {
        public class ActionHyperV
        {
            
            public int Id{ get; set; }
            [StringLength(50)]
            public string Nom { get; set; }
            [StringLength(250)]
            public string Commentaire { get; set; }
    
            public ICollection<Profil> Profils { get; set; }
        }
    }

    mes tables se sont créés et j'arrive bien a récupérer leur contenu de cette façon par exemple :

    List<Profil> profils = ctx.Profils.ToList();

    le problème est que je voudrai lier ces 2 tables, et je procède de la façon suivante :

    public bool LinkProfilAction(/*int ProfilID, int ActionID*/)
            {
                
                    using (Context ctx = this._contextProvider.GetContext())
                    {
    
                    int ProfilID = 1;
                    int ActionID = 1;
                   
                    var profil = ctx.Profils.Find(ProfilID);
                    var action = ctx.ActionHyperV.Find(ActionID);
                 
                   
                    profil.ActionHyperVs.Add(action);
                    
                    ctx.SaveChanges();
                    return true;
    
                    }
               
                
            }

    Je ne comprend pas pourquoi cela ne fonctionne pas, lorsque j'exécute le code pas à pas, profil et action valent "null", alors que la table est bien rempli, il y a un morceau de code similaire dans le code existant qui fait la même chose sur une entité "group" et qui fonctionne parfaitement. j'ai aussi essaye de faire comme dans cette doc :

    https://www.codeproject.com/Tips/893609/CRUD-Many-to-Many-Entity-Framework

    a la section insert qui correspond parfaitement à ce que je veux faire, cependant j'ai la même erreur, si quelqu'un à une piste ou sait pourquoi cela ne fonctionne pas vous m'aideriez beaucoup!

    Merci d'avance!



    mardi 10 avril 2018 09:32