Просто чтобы понять объяснение Кьяртана:
У меня было:
public Project DeleteProject(int id)
{
using (var context = new Context())
{
var p = GetProject(id);
context.Projects.Remove(p);
context.SaveChanges();
return p;
}
}
Проблема в том, что я использовал свой собственный метод (GetProject ()), чтобы получить сущность (следовательно, использовал другой контекст для загрузки сущности):
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;
}
}
Одним из решений может быть присоединение загруженного объекта в соответствии с состояниями Кьяртана, другим может быть мое решение для загрузки объекта в том же контексте:
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;
}
}