Tal vez deberías pensar en el uso de EF en su aplicación.contexto de EF se debe utilizar para el período tan corto de tiempo como sea posible:
- Crear contexto
- Cargar datos
- datos Modificar
- Guardar datos contexto
- gota
Debido implementación interna (IdentityMap, UnitOfWork) el largo contexto de vida no es una buena opción y con un contexto de vida corto no se quiere el comportamiento mencionado al l. Incluso en la aplicación de escritorio debe usar un enfoque como el contexto por formulario. Cargas datos, presentas datos a tu usuario y hasta ese momento solo el usuario puede modificar los datos y presionar el botón Guardar: es responsabilidad de la aplicación lidiar con los problemas de concurrencia de algún modo (marca de tiempo). La modificación automática de los datos que forman parte de la unidad de trabajo en ejecución es una mala idea: ¿qué ocurre si el usuario ya ha modificado los datos? ¿Va a sobrescribir sus cambios?
Editar:
Puede leer más sobre impelementation de ObjectContext
here.
Puedo imaginar situaciones en las que se necesitan notificaciones de actualización de datos para las aplicaciones del cliente. Puede ser de solo lectura de datos en tiempo real, por ejemplo, información de negociación de acciones. Pero en tal caso necesitas algo más poderoso. No es un escenario para que el cliente llame a ORM para obtener datos, sino el escenario para que el cliente se suscriba a algún servicio/nivel intermedio que maneja la recuperación de datos y la notificación de cambios rápidos.
Para escenarios simples donde solo necesita actualizar los datos en tiempo semi-real, puede usar el sondeo: su cliente llamará nuevamente a la consulta en pocos segundos y usará la estrategia StoreWins. Cualquier estrategia de notificación queda fuera del alcance de EF: debe implementarla como desencadenante, dependencia de sql, patrón de suscripción de publicación u otra cosa. Incluso con la notificación, solo podrá manejar algún evento y volver a consultar los datos.
De nuevo, si desea reducir la transferencia de datos con el sondeo, necesita algún servicio/nivel intermedio que permita cierto nivel de almacenamiento en caché (también puede probar los Servicios de datos WCF).
¡excelente pregunta! Mismo problema/pregunta: http://stackoverflow.com/questions/11627959/entity-framework-data-updates-in-a-multi-user-environment-with-central-database – juFo
También tengo el mismo problema –