Los objetos de contexto generados por Entity Framework no son seguros para subprocesos.Entity Framework Thread Safety
¿Qué sucede si utilizo dos contextos de entidad separados, uno para cada hilo (y llamo a SaveChanges()
en cada uno)? ¿Esto será seguro para subprocesos?
// this method is called from several threads concurrently
public void IncrementProperty()
{
var context = new MyEntities();
context.SomeObject.SomeIntProperty++;
context.SaveChanges();
}
creo marco marco de la entidad implementa algún tipo de variable 'contador', que realiza un seguimiento de si los valores actuales en el contexto son frescos o no.
- Con el código anterior - llamado desde hilos separados - ¿todavía necesito bloquear el incremento/guardar cambios?
- Si es así, ¿cuál es la forma preferida de lograr esto en este escenario simple?
* "El contexto objetos generados por Entity Framework no es seguro para subprocesos. "* - ¿Por qué dices eso? – RPM1984
Me refiero a MSDN: http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.aspx donde dice "La clase ObjectContext no es segura para subprocesos". – Harper
Sí, eso es lo que pensé que quería decir: el contexto, no las entidades. Por eso nunca debes usar un singleton para el OC. – RPM1984