Estoy siguiendo un tutorial por Scott Gu que se refiere a una clase llamada DbContext. No puedo encontrarlo en ningún espacio de nombres en el marco 4 y me parece que se renombró de CT4 DbContext a .net4 System.Data.Linq.DataContext. ¿Mi suposición es correcta?¿DbContext es lo mismo que DataContext?
Respuesta
DbContext
es una nueva clase que se agregó en la descarga separada reciente por el equipo de EF. Actualmente no forma parte del núcleo EF 4.0. Sin embargo, DbContext
avanzar sería la forma preferida de interactuar con EF.
Entonces, ¿cómo es diferente de ObjectContext
? Bueno, semánticamente son exactamente lo mismo pero redujeron mucho ruido adicional que tenía ObjectContext
. Al igual que la exposición de un conjunto necesario más trabajo, por ejemplo:
public ObjectSet<Customer> Customers
{
get { return db.CreateObjectSet<Customer>(); }
}
Con DbContext
que puede hacer:
public DbSet<Customer> Customers { get; set; }
Básicamente en la ObjectContext
, cuando haces punto (.
), todo lo que es justo allí, lo cual hace la lista bastante grande. Lo que el equipo de EF realmente quería exponer en DbContext
son entidades que son solo específicas de su dominio y el resto de la capacidad del marco se encuentra bajo diferentes propiedades. Simplemente hace que la experiencia de programación sea más fácil.
Esto significa que si está utilizando ObjectContext
en este momento, con un poco de código, puede pasar fácilmente a DbContext
.
¿Alguna idea de cuándo se fusionará con la rama principal del framework? –
EF 4.1 se ha lanzado a partir del 11 de abril de 2011. Consulte http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx para obtener más información. – villecoder
¿Esto no te une a EF para todo el proyecto, digamos que tienes una capa empresarial? – Coops
Es un poco tarde, pero para los googlers. DbContext
se utiliza para EF
(ADO.NET Entity Framework) y DataContext
se utiliza para L2S
(LINQ a SQL).
- 1. ¿Currying es lo mismo que sobrecargar?
- 2. ¿Es AppendHeader exactamente lo mismo que AddHeader?
- 3. ¿Es 'yield self' lo mismo que instance_eval?
- 4. ¿Corba es lo mismo que SOA?
- 5. ¿Es '<? =' Lo mismo que 'eco'?
- 6. ¿Es "extend self" lo mismo que "module_function"?
- 7. ¿No es 00.0 lo mismo que 0.0?
- 8. puntero NULL es lo mismo que desasignarlo?
- 9. ¿Es dp lo mismo que dip?
- 10. ¿Es LinqToSQL lo mismo que Linq?
- 11. YARD no es lo mismo que RDoc?
- 12. es si (variable) lo mismo que si en Objective-C
- 13. ¿Es com.sun.org.apache lo mismo que el paquete org.apache?
- 14. ¿Window.location() es lo mismo que una solicitud GET?
- 15. ¿Es int lo mismo que unsigned o signed?
- 16. ¿Es ReferenceEquals (null, obj) lo mismo que null == obj?
- 17. ¿Es OpenJDK JVM lo mismo que Oracle Java SE JVM?
- 18. es `hg forget` lo mismo que` git rm --cached`?
- 19. es StringComparison.Ordinal lo mismo que InvariantCulture para probar la igualdad?
- 20. ¿Es Java 1.6 lo mismo que JDK 6?
- 21. ¿Es PHP para Windows lo mismo que Linux, Mac, etc.?
- 22. Encoding.Default no es lo mismo que ninguna codificación en File.ReadAllText?
- 23. ¿Es el mango lo mismo que un puntero inteligente?
- 24. JPA: es @PrimaryKeyJoinColumn (...) lo mismo que @JoinColumn (..., insertable =?, Updatable =?)?
- 25. ¿Es la palabra clave 'Is' VB.NET lo mismo que Object.ReferenceEquals?
- 26. ¿Calloc (4, 6) es lo mismo que calloc (6, 4)?
- 27. es SSIS inserción masiva lo mismo que una inserción masiva
- 28. ¿Es "2D fft" lo mismo que dos 1D fft?
- 29. Acceda a DbContext desde IQueryable
- 30. lo que es :: * en C++
¿descargó el CTP? Creo que usa un espacio de nombres como System.Data.Entities.CTP o somesuch ... – AllenG
No lo he hecho. Pero descubrí sobre ObjectContext. Como esto es para un sistema de producción, no puedo usar CTP. –
NB Sé que es obvio pero 'System.Data.Linq.DataContext' es de LINQ To Sql y' DbContext' es de Entity Framework –