2012-05-06 15 views
10

Acabo de descargar EntityFramework.dll v4.3. He encontrado una serie de preguntas que comparan DbContext contra ObjectContext. Pero la mayoría de estos son de 2010 o principios de 2011.¿Es siempre mejor usar 'DbContext' en lugar de 'ObjectContext'?

Me gustaría leer más sobre el tema. Específicamente, ¿hay algún libro en DbContext que pueda tener en mis manos? También quiero saber, a partir de hoy, ¿cuáles son las limitaciones de DbContext al compararlo con su hermano mayor, el ObjectContext?

Me doy cuenta de que DbContext es más compacto ya que expone menos propiedades. Esto me sugiere que debería migrar desde ObjectContext. Pero, si hago esta migración, ¿renunciaré a cualquier capacidad? Por ejemplo, he leído que DbContext no tiene la capacidad STE (entidades de auto-seguimiento). ¿Sigue siendo cierto y es una preocupación?

+0

Posible duplicado de ['ObjectContext' vs 'DbContext' en Entity Framework] (https://stackoverflow.com/questions/9176967/objectcontext-vs-dbcontext-in-entity-framework) – DavidRR

Respuesta

16

Me gustaría leer más sobre el tema. Específicamente, ¿hay libros en DbContext que pueda tener en mis manos?

Su pregunta no comienza bien porque una sola consulta de Google le dará una respuesta para esto. Hay un excellent book about DbContext en sí mismo — que no contiene nada sobre el enfoque del Código Primero, pero supongo que ese no es realmente el punto de su pregunta.

he encontrado una serie de preguntas que comparan DbContext vs ObjectContext. Pero la mayoría de estos son de 2010 o principios de 2011.

Si sólo desea reemplazar ObjectContext + EDMX con DbContext + EDMX, la comparación sigue siendo el mismo. DbContext es un contenedor alrededor de ObjectContext y su conjunto de características no creció excepto con respecto a aquellas características relacionadas con Code First y Migrations.

que dan cuenta de que DbContext es más compacto en el que expone menos propiedades. Esto me sugiere que debo migrar de ObjectContext.

Sí, es más compacto y simplifica las tareas más comunes que tiene que hacer con el contexto. Para tareas más complejas, aún puede convertir una instancia de DbContext en una instancia de ObjectContext a través de IObjectContextAdapter.

Pero, si realizo esta migración, ¿renunciaré a cualquier capacidad? Para el ejemplo , he leído que DbContext no tiene la capacidad STE (Self-tracking entities). ¿Sigue siendo cierto y es una preocupación?

STE fue creado para ObjectContext y no creo que fue portado a DbContext, pero se puede tratar de poner en práctica esta capacidad a sí mismo.

STEs son solo una plantilla con una idea para resolver algún problema.Parecía una buena solución teórica, pero no fue muy bien aceptada por la comunidad de desarrolladores porque la solución no es muy buena para los escenarios del mundo real. También es la razón por la cual se están desarrollando otras características más importantes en lugar de mejorar o trasladar la plantilla.

+4

En relación con las ECE: "La entidad El equipo del Framework no ha realizado ninguna actualización significativa de la plantilla de Entidades de seguimiento automático desde que se lanzó por primera vez. Recomiendan a los desarrolladores que consideren el uso de los Servicios de datos WCF como una solución más sólida y completa ". (p.76 del _DbContext_ de Julia Lerman) –

Cuestiones relacionadas