2008-09-27 11 views

Respuesta

10

LINQ to Entities utiliza ObjectContext, no DataContext.

He aquí una breve descripción de EF:

LINQ to Entities, the ObjectContext Class, and the Entity Data Model

LINQ a Entidades consultas utilizan la infraestructura de servicios objeto. La clase ObjectContext es la clase principal para interactuar con un EDM como objetos CLR. El desarrollador construye una instancia de ObjectQuery a través del ObjectContext . La clase ObjectQuery genérica representa una consulta que devuelve una instancia o colección de entidades tipadas. Los objetos de entidad devueltos por ObjectQuery son rastreados por el contexto del objeto y se pueden actualizar utilizando el método SaveChanges.

Ni siquiera funciona del mismo modo que el DataContext en LINQ to SQL. Si bien es cierto que ambos administran la conexión y rastrean los cambios, sin embargo, difieren en cómo modelan las estructuras de datos y las relaciones.

Sin embargo, daría un poco de holgura 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á hablando.

Por ejemplo:

LINQ to SQL and the DataContext Class

El DataContext es el fuente de todas las entidades mapeadas en una conexión de base de datos . It seguimiento de los cambios que realizó en todas las entidades recuperadas y mantiene una "caché de identidad" que garantice que las entidades recuperadas más de una vez se representan mediante el uso de la misma instancia de objeto .

Puede ser confuso.

5

Aparentemente, LinqToEntities utiliza un ObjectContext en lugar de DataContext.

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


actualización, para .NET 4 con EF4.1, es posible que le interesen también DbContext cuando se trabaja con LinqToEntities. Ver also.

0

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.

1

Creo que se puede estar refiriendo al Modelo de Datos de Entidad ADO.NET (archivo .edmx - comparable a un archivo .dbml).

En VS se ve en la Añadir Item-> ADO.NET Entity Data Model

Cuestiones relacionadas