Erreur multiple instances of IEntityChangeTracker
Bonjour à tous,
Je développe en ce moment une application web avec .NET MVC 2.
J’ai deux entités : group et news. Une news est visible par un ou plusieurs groups. J’utilise un repository différent pour les deux.
Dans mon contrôleur pour news, la fonction « create » récupère les informations envoyées par le formulaire de cette façon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| //
// GET: /NewsAdmin/Create/
[HttpGet]
public ActionResult Create()
{
return View(new CreateNewsViewModel(new News()));
}
//
// POST: /NewsAdmin/Create/
[HttpPost]
public ActionResult Create(CreateNewsViewModel model)
{
model.news.CategoryId = Int32.Parse(Request.Form["news.CategoryId"]);
if (ModelState.IsValid)
{
News news = new News();
DateTime date = DateTime.Now;
//AuthorId a recuperer
news.AuthorId = 1;
news.Title = IntranetTools.UppercaseFirst(model.news.Title.Trim());
news.Content = model.news.Content;
news.IsVisible = Request.Form["news.IsVisible"].Contains("true");
news.CreateDate = date;
news.PublicationDate = date;
news.LastChangedDate = date;
news.CategoryId = model.news.CategoryId;
// Collection des groupes concernés
foreach (var c in model.allGroups)
{
if (Request.Form["" + c.GroupId].Contains("true"))
{
News.Groups.Add(c);
}
}
_newsRepository.AddToNewsSet(news);
_newsRepository.SaveChanges();
return Redirect("/NewsAdmin/Index/");
}
return View(model);
} |
Je pars du principe que mes groups sont déjà créés. Je ne fais qu’insérer les groups choisis par l’utilisateur via des checkbox. Dans mon « CreateNewsViewModel », je crée une liste de groups qui contient tous les groups existant dans ma bdd. Je récupère la liste dans ma vue, par le biais d’un « for each » je crée des checkbox pour chacun des groups. Je réutilise la même liste dans mon contrôleur pour comparer si les checkbox ont été cochées. Pour chaque occurrence à true, j’ajoute les groups dans la collection de groups de ma news nouvellement créée.
Et là, c’est le drame.
J’obtiens l’erreur :
Citation:
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
J'ai fais des recherches sur cette erreur, mais je ne trouve pas une réponse qui corresponde exactement à mon problème.