net mvc framework example con asp application c# asp.net-mvc entity-framework-6 asp.net-mvc-scaffolding

c# - example - mvc crud entity framework



Cómo utilizar el ensamblaje referenciado para el andamio del controlador (2)

El andamio con ensambles referenciados compilados como archivos dll simplemente no funciona. Fue necesario agregar una referencia al proyecto que contiene las clases de modelo. Entonces funcionó como se esperaba. ¿Es esto un error o una característica?

Tengo una biblioteca de clases con algunas clases modelo y una clase DbContext (todas esas clases son públicas). Esta biblioteca de clase está referenciada por una aplicación MVC-5.

¿Es posible usar las clases modelo de esa biblioteca de clases referenciada para andamios de un controlador en esa aplicación MVC-5?

Cuando uso Controladores - Agregar - Controlador - Controladores MVC con vistas, usando Entidad Marco, entonces en el cuadro de diálogo ambos cuadros combinados para la clase Modelo y para la clase de contexto Datos no contienen ningún elemento. Cuando complete el nombre completo de la clase de la biblioteca de clases a la que se hace referencia, el botón Agregar seguirá desactivado. ¿Qué estoy haciendo mal?


Con un poco de ajustes, puede hacer referencia a un dll externo (por ejemplo, el proyecto Entity Framework) utilizando un andamio.

Para hacerlo, debes crear una clase que herede tu clase de tabla EF. Para poder trabajar necesita usar el atributo [Table] en la parte superior de su clase con el esquema y el nombre de la tabla correctos, o de lo contrario el andamio creará una nueva tabla.

También asegúrese de usar la palabra clave "nueva" y sobrecargar el ID. Deberá usar el atributo [Key] (si todavía no se ha definido en su tabla EF en el dll original).

Finalmente crea un nuevo dbcontext y asegúrate de usar el id. De cadena de conexión en tu web.config.

Esto debería permitirle hacer referencia a la tabla y al contexto en su proyecto web.

Aquí está mi código (muy simple) y espero que esto ayude.

namespace ConsoleAdmin.Models { [Table("ntf.tblNotification_ntf")] public class Notification : tblNotification_ntf { [Key] public new int notificationId { get; set; } } public class NotificationDbContext : DbContext { public NotificationDbContext(): base("name=bd_Soquij_logEntities") { } public DbSet<Notification> Notifications { get; set; } } }