Juste pour propergate sur Kjartans explication:
J'ai eu:
public Project DeleteProject(int id)
{
using (var context = new Context())
{
var p = GetProject(id);
context.Projects.Remove(p);
context.SaveChanges();
return p;
}
}
Le problème est que j'ai utilisé mon propre méthode (GetProject()) pour obtenir l'entité (et donc un autre contexte, à charge de l'entité):
public Project GetProject(int id)
{
using (var context = new Context())
{
var project = context.Projects
.Include(p => p.Reports.Select(q => q.Issues.Select(r => r.Profession)))
.Include(p => p.Reports.Select(q => q.Issues.Select(r => r.Room)))
.SingleOrDefault(x => x.Id == id);
return project;
}
}
Une solution pourrait être de joindre le chargé de l'entité que Kjartan unis, un autre pourrait être le mien solution, à charge de l'entité, dans le même contexte:
public Project DeleteProject(int id)
{
using (var context = new Context())
{
var p = context.Projects.SingleOrDefault(x => x.Id == id);
if (p == null)
return p;
context.Projects.Remove(p);
context.SaveChanges();
return p;
}
}