2011-03-28 8 views
9

Entity Framework ObjectSet con su método ToList muestra solo las entidades guardadas. Eso significa que, cuando llamoEntityFramework muestra las entidades antes de guardar los cambios

context.AddToCustomers(myNewCust); 

y luego (sin SaveChanges llamadas)

myDataGrid.DataContext = context.Customers.ToList(); 

la cuadrícula de datos no muestra la entidad recién agregado (incluso context.Customers.Count() no lo incluye).

¿Hay alguna manera de mostrar estas entidades (aquellas con EntityState = Added)?

Gracias de antemano.

Respuesta

8

creo que se puede conseguir entidades añadidas no guardados llamando a algo como:

var inserted = context.ObjectStateManager 
         .GetObjectStateEntries(EntityState.Added) 
         .Where(e => !e.IsRelationship) 
         .Select(e => e.Entity) 
         .OfType<Cutomer>(); 

Pero con sólo leer su pregunta, Tengo miedo de que estés tratando de hacer algo mal. ¿Por qué necesita combinar entidades no guardadas con recuperadas? Si necesita mostrar contenido no guardado, simplemente debe mantenerlo en su propia colección por separado.

+0

"¿Por qué necesita combinar entidades no guardadas con las recuperadas?" Tal vez tenga una Entidad en un formulario con entidades secundarias relacionadas que se muestran en una lista: desea agregar hijos nuevos a la lista, pero solo persisten los hijos cuando guardan la entidad principal. – markmnl

Cuestiones relacionadas