Acabo de empezar a usar Entity Framework en lugar de mi NHiberante normal para ver cómo funciona EF y hasta ahora estoy teniendo muchos problemas, pero uno en particular es separar un objeto y mantenerlo los objetos secundarios relacionados.
Compré el libro O'Reilly Entity Framework que dice "sí, la estructura de entidad de forma predeterminada no mantiene el gráfico de objetos cuando se separa", pero no muestra cómo guardar el gráfico. Gracias O'Reilly eso es realmente útil.Entity Framework - Separar y mantener el gráfico de objetos relacionados
De todos modos, si alguien puede ayudar a que sería grande, código de abajo:
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;
}
Gracias!
Dan
Eso está muy bien gracias a Alex MergeOption hacer el truco para, pero el problema es, sin separar mi método de actualización no funciona, de todos modos alrededor de esto? usando (var creativeWorkshopEntities = new CreativeWorkshopEntities()) { if (job.Id> 0) creativeWorkshopEntities.AttachUpdated (job); // Método del extensor personalizado else creativeWorkshopEntities.AddToJob (job); creativeWorkshopEntities.SaveChanges(); } –
Necesita aplicar ApplyPropertyChanges (...) pasando la entidad actualizada. ApplyPropertyChanges (actualizado) copia los valores de la entidad 'actualizada' en la entidad original. Para que esto funcione, la entidad 'original' debe estar en el contexto, ya sea porque retuvo una copia y la adjuntó (se recomienda) o porque hizo una consulta para volver a cargarla desde la base de datos. –
¿Hay alguna manera de evitar que se triture el gráfico de entidades? ¿Por qué la separación se implementa de esta manera? – Den