Я только начал использовать Entity Framework вместо моего обычного NHiberante, чтобы увидеть, как работает EF, и до сих пор у меня много проблем, но одна из них - это отсоединение объекта и сохранение связанных дочерних объектов.
Я купил книгу O'Reilly Entity Framework, в которой говорится, что «да, по умолчанию объектный фреймворк не сохраняет объектный граф при отсоединении», но не показывает, как вы храните этот граф! Спасибо, О'Рейли, это действительно полезно.
В любом случае, если кто-то может помочь, это было бы здорово, код ниже:
using (var creativeWorkshopEntities = new CreativeWorkshopEntities())
{
var q = from c in creativeWorkshopEntities.Job.Include("Files")
where c.Id == jobId
select c;
var job = q.First();
creativeWorkshopEntities.Detach(job);
return job;
}
Спасибо!
Дэн
Попробуйте вместо этого использовать запрос NoTracking. Таким образом, объекты никогда не присоединяются, поэтому вам не нужно «отсоединять», когда график измельчается
т.е.
using (var creativeWorkshopEntities = new CreativeWorkshopEntities())
{
creativeWorkshopEntities.Job.MergeOption = MergeOption.NoTracking;
var q = from c in creativeWorkshopEntities.Job.Include("Files")
where c.Id == jobId
select c;
var job = q.First();
return job;
}
Надеюсь это поможет
Alex
(Руководитель программы Entity Framework Team)