ASP.NET vNext MVC y Entity Framework

asp.net-core entity-framework entity-framework-core

Pregunta

Estoy tratando de crear un pequeño proyecto ASP.NET vNext WebAPI + AngularJS + Entity Framework. Pero obviamente, mucho cambió en EF7, así que estoy experimentando los siguientes problemas:

Cambié el project.json siguiente manera:

"dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",
    "EntityFramework": "7.0.0-beta1",
    "EntityFramework.SqlServer": "7.0.0-beta1",
    "EntityFramework.Commands": "7.0.0-beta1",
    "Microsoft.AspNet.Mvc": "6.0.0-beta1",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta1"

En mi clase DataContext, estoy intentando lo siguiente:

"dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",
    "EntityFramework": "7.0.0-beta1",
    "EntityFramework.SqlServer": "7.0.0-beta1",
    "EntityFramework.Commands": "7.0.0-beta1",
    "Microsoft.AspNet.Mvc": "6.0.0-beta1",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta1"

}

En primer lugar: ¿Por qué el espacio de nombres System.Data.Entity cambió a Microsoft.Data.Entity ? No puedo encontrar nada acerca de este cambio en cualquier artículo de microsoft msdn !!

Segundo: Todo el Database.SetInitializer ya no funciona. Se recomienda utilizar el espacio de nombres Microsoft.Data.Entity.Infrastructure pero esa clase de base de datos no contiene un método SetInitializer .

Respuesta aceptada

Debido a que EF7 aún está en versión preliminar, aún no encontrará ninguna documentación en los artículos de MSDN; Necesitarás mirar el wiki de EF7 GitHub para cualquier información.

Al probar EF7, tenga en cuenta que esta es una etapa muy temprana en el desarrollo del nuevo código base de EF y que hay muchas características que están parcialmente implementadas o que aún no están disponibles.

Creo que SetInitializer es una de esas cosas que se ha implementado de manera completamente diferente; el equipo está evitando los métodos estáticos para mejorar la capacidad de prueba del marco.

También tenga en cuenta que la última versión de EF7 es 7.0.0-beta3 , pero la wiki proporciona información sobre cómo usar las versiones de la noche . (El uso de compilaciones nocturnas puede ser difícil debido a los cambios severos desde que se lanzó VS2015 CTP6).


Respuesta popular

EF7 es más ligero y modular para admitir nuevas plataformas y almacenes de datos no relacionales. Los cambios son bastante fundamentales, por lo que algunas API subyacentes han cambiado, incluidos sus espacios de nombres.

La nueva naturaleza liviana significa que menos cosas sucederán automáticamente entre bastidores en comparación con las versiones anteriores. Los inicializadores de la base de datos se han eliminado, por lo que las bases de datos no se crearán a pedido. En su lugar, se supone que usted debe controlar este proceso utilizando las Migraciones de base de datos . Para obtener más información: ASP.NET vNext (MVC6) Ground Up # 3 - Entity Framework 7




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué