¿Se recomienda utilizar entidades de seguimiento automático con servicios de WCF?

Quiero saber si se recomienda el uso de Entidades autorroscantes (en Entity Framework) con los servicios WCF. En caso afirmativo, ¿me puede guiar a un tutorial que pueda orientar sobre cómo hacerlo?

En realidad, voy a desarrollar una aplicación WPF usando Prism con MEF y MVVM. He decidido usar Entity Framework. Quiero sugerencias y consejos con respecto a este enfoque.

Cualquier ayuda será apreciada.

Quiero saber si se recomienda el uso de Entidades autorroscantes (en Entity Framework) con los servicios WCF.

Depende de a quién le preguntes. Si le preguntas a MS, te dirán que sí porque simplemente no tienen nada mejor que ofrecer. Las ECE fueron una respuesta a esta muy antigua sugerencia de MS Connect . El problema es que EF mismo tiene un terrible mal soporte para fusionar cambios entre dos gráficos de entidades (debe hacerlo completamente por sí mismo) y los desarrolladores que trabajan en la plataforma MS (a veces incluyéndome a mí) comparten algunos comportamientos comunes:

  • Son perezosos para desarrollar su propia solución al problema y esperan algo de magia directamente en las API proporcionadas por MS.
  • La mayoría de las veces no están capacitados / capacitados / competentes en la tecnología que tienen que usar, porque tienen que pasar a una nueva con demasiada frecuencia.
  • Las únicas API que saben son parte de .NET Framework. No buscan otras opciones ni comparan características.

Los primeros dos puntos son el resultado de la estrategia de MS donde RAD se convierte en sinónimo de diseñador (o también recientemente en plantillas T4).

Comparto la opinión de @Richard sobre las ECE. Agregaría un inconveniente adicional de las ECE: mueven grandes conjuntos de datos entre los participantes. Si decide obtener un gráfico de entidad del servidor, cambie una sola entidad en el gráfico y vuelva a insertar los datos, ellos transferirán de nuevo todo el gráfico. La transferencia de entidades solo cambiadas resulta en una lucha con la lógica central de STE. También me temo que hacen un seguimiento de los cambios por completo en cada nivel de entidad en lugar de por nivel de propiedad. En caso de modificación de entidades con grandes datos binarios o de cadena, puede resultar en la transferencia de demasiados datos innecesarios entre el servicio y la base de datos, y entre el servicio y el cliente.

De todos modos, para una aplicación simple con poco tráfico de datos y pequeñas entidades, pueden hacer un buen trabajo y le permiten construir su aplicación rápidamente, pero sin una separación estricta de las preocupaciones. Obtendrá entidades del servicio y las vinculará directamente a la interfaz de usuario de WPF y podrán realizar un seguimiento de los cambios por usted. Más tarde, volverá a enviar las entidades al servicio y podrán continuar los cambios. Su cliente y servicio estarán estrechamente vinculados, pero en algunos casos puede ser lo suficientemente bueno.

Evitaría las entidades de auto-seguimiento en general, publiqué sobre esto aquí .

Cree sus propios DTO y úselos para administrar la transferencia de datos; luego agregue biuold a sus objetos POCO en el servicio y úselos con el marco de entidad para la persistencia.

Si quieres un auto rastreo entonces hay un enfoque un poco más limpio aquí