Bonjour tout le monde,

Après avoir mis en place une architecture en Domain Driven (vous pourrez là retrouver sur ce lien), nous avons commencé à développer notre application.

Néanmoins nous rencontrons actuellement un problème et j’aimerai savoir si vous auriez certaines pistes à nous proposer. En avant pour la petite explication :

J’ai une méthode d’un controler qui récupère une liste d’id (par exemple d’id de classes).

Cette action instancie un objet de type User, puis fait appel à un repository pour récupérer l’ensemble des classes correspondant à la liste des ids :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public Classe GetClass(int id)
        {
            return  DataContext.CLASS.FirstOrDefault(d => d.IdClass== id);
        }
Elle insère par la suite ces objets dans l’objet User :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
foreach (int id in model.SelectedId)
{
 user.Classes.Add(repo.GetClass(id));
}
Une fois cela fait, on fait appel à un autre repository pour insérer cet objet en BDD.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public bool AddUser(User user)
        {
            try
            {
                DataContext.AddObject("USER", user);
                DataContext.SaveChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }
Et là, paf erreur : un message me dit qu’il est impossible d’ajouter un objet déjà rattaché à un context. J’en déduis donc que cela provient de mes classes qui doivent être ratachées à un context.

D’où ma question : auriez-vous des solutions à me proposer ? Nous essayons de développer l’application de la manière la plus propre possible, et nous souhaiterions éviter toute rustine ou combine

Merci pour votre aide,

Finality