Pregunta

Hace poco hice una pregunta sobre el rastreo de Linq-to-Entities

Creo que una de las respuestas no fue correcta, ya que Consulte el uso del DataContext. ¿Hay un DataContext para LINQ-to-Entities? Si es así, ¿cómo lo consigo?

¿Fue útil?

Solución

LINQ to Entities usa ObjectContext, no DataContext.

Aquí hay una breve descripción de EF:

  

LINQ to Entities, el ObjectContext Clase y el modelo de datos de la entidad

     Las consultas

LINQ to Entities utilizan la Infraestructura de servicios de objetos . los    ObjectContext class es la clase principal para interactuar con un EDM como   Objetos CLR. El desarrollador construye una instancia de ObjectQuery a través de   ObjectContext. La clase genérica ObjectQuery representa una consulta que devuelve   Una instancia o colección de entidades escritas. Objetos de entidad devueltos por   ObjectQuery es seguido por Object Context y puede actualizarse usando   el método SaveChanges.

Ni siquiera funciona de la misma manera que DataContext en LINQ to SQL. Si bien es cierto que ambos administran la conexión y siguen los cambios, también difieren en la forma en que modelan las estructuras de datos y las relaciones.

Sin embargo, le daría cierta libertad al cartel de esa respuesta incorrecta, porque LINQ to SQL hace referencia a "entidades", y alguien que no esté familiarizado con EF podría estar pensando que saben de lo que estás hablando.

Por ejemplo:

  

LINQ para SQL y la clase DataContext

     

El DataContext es la fuente de todas las entidades asignada sobre una base de datos   conexión. hace un seguimiento de los cambios que realizó en todas las entidades recuperadas y   mantiene un " caché de identidad " Eso garantiza que las entidades recuperadas.   más de una vez se representan utilizando la misma instancia de objeto .

Puede ser confuso.

Otros consejos

Al parecer, LinqToEntities usa un ObjectContext en lugar de DataContext.

Es gracioso que el equipo de objetos haya creado un DataContext y que el equipo de datos haya creado un ObjectContext (y luego en DataQuery vs ObjectQuery, etc.) "¡Nombrar es difícil! "


Actualización, para .net 4 con EF4.1, también podría estar interesado en DbContext cuando se trabaja con LinqToEntities. Consulte también .

Creo que podría estar refiriéndose al Modelo de Datos de Entidad de ADO.NET (archivo .edmx - comparable a un archivo .dbml).

En VS se ve en Agregar elemento- > Modelo de datos de entidad ADO.NET

Hay un lote de estas diferencias de sintaxis arbitrarias. P.ej. SubmitChanges (L2S) y SaveChanges (L2E). Sin embargo, eso sería solo la punta de las diferencias entre las dos tecnologías.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top